sql语句加参数
发布网友
发布时间:2022-04-07 18:39
我来回答
共5个回答
热心网友
时间:2022-04-07 20:08
你需要了解sql语句的拼接和一般字符串的拼接的异同.
例如:在sql脚本语句中,字符串用单引号'',这些在C#语句中拼接"sql语句"字符串时需要注意.
你可以在vs.net中写一个用字符串拼接的sql语句,最后把它赋值给一个字符串对象.然后用断点调试区查看生成的sql语句的结果,一般sql语句较长,验证的方式都是把这段sql语句copy到sql sever的脚本文件(.sql)中去执行一下,就知道是否正确了.当然也有先在sql server 中调试好拼接字符串后再copy到程序代码中去修改的.具体方式不定.
(以上是介绍的拼接sql语句方法,不过这种方式的安全性不高,常见的sql注入式攻击就是利用的拼接sql语句的缺陷.)
你还可以考虑使用带参数的存储过程来实现,这个就需要了解存储过程的一些知识了,具体的方法我就不介绍了,关于带参数的存储过程,网上有很多例子参考.
热心网友
时间:2022-04-07 21:26
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace test
{
class DB:
{
private SqlConnection cn;
private SqlCommand cmd;
private SqlDataAdapter da;
private DataTable tb;
private string strCn;
public DB(string sqlServer,string sqlBase,string sqlUid,string sqlPwd)
{
strCn="server="+sqlServer+";"database="+sqlBase+";uid="+sqlUid+";pwd=+sqlPwd;
cn = new SqlConnection(strCn);
cn.Open();
}
public void execSql(string strSql)
/*这个方法是更新数据库的,strSql是执行的SQL语句*/
{
cmd = new SqlCommand(strSql, cn);
cmd.ExecuteNonQuery();
}
public DataTable openSql(string strSql)
/*这个方法是查询数据库的,strSql是执行的SQL语句*/
{
da = new SqlDataAdapter(strSql,cn);
tb = new DataTable();
da.Fill(tb);
return tb;
}
}
}
上面是我用的数据库连接类
在程序里你可以:
DB db=new DB("服务器IP","数据库名称","SQL用户名","SQL密码");//实例化
db.execSql("insert into XXXX values('XXX','XXX','XXX'......)");
/*执行插入数据库语句*/
DataTable tb= db.opSql("select * from XXXXX");
/*返回一张查询的表,赋给tb这个变量;
以上这些XXX就是你的TEXTBOX1.TEXT.TOSTRING()*/
热心网友
时间:2022-04-07 23:01
string sql="insert into 表名 values ("参数1","参数2","参数3")";
sqlParamters[] param=new sqlParamters[]{
new sqlParamters("参数1",名称.Text.Tostring()),
new sqlParamters("参数1",名称.Text.Tostring()),
new sqlParamters("参数1",名称.Text.Tostring())
}
类名.ExecuteCommand(sql,param);
热心网友
时间:2022-04-08 00:52
你说的好像是SQLHELPER类的,这个一般用的比较广泛的,试一下用ADO的.........
热心网友
时间:2022-04-08 03:00
推荐http://tieba.baidu.com/f?kz=548059460,去看一下,有用.
参考资料:http://tieba.baidu.com/f?kz=548059460