sql语句加参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句加参数相关的知识,希望对你有一定的参考价值。

我想用c#写一个数据库连接类 不知道如何在sql语句中使用参数 例如 insert into 参数1(参数2)
还有 我想知道如何实现 构造语句中名称可变的对象的方法 例如 +名称.Text.Tostring()+

你需要了解sql语句的拼接和一般字符串的拼接的异同.
例如:在sql脚本语句中,字符串用单引号'',这些在C#语句中拼接"sql语句"字符串时需要注意.
你可以在vs.net中写一个用字符串拼接的sql语句,最后把它赋值给一个字符串对象.然后用断点调试区查看生成的sql语句的结果,一般sql语句较长,验证的方式都是把这段sql语句copy到sql sever的脚本文件(.sql)中去执行一下,就知道是否正确了.当然也有先在sql server 中调试好拼接字符串后再copy到程序代码中去修改的.具体方式不定.
(以上是介绍的拼接sql语句方法,不过这种方式的安全性不高,常见的sql注入式攻击就是利用的拼接sql语句的缺陷.)
你还可以考虑使用带参数的存储过程来实现,这个就需要了解存储过程的一些知识了,具体的方法我就不介绍了,关于带参数的存储过程,网上有很多例子参考.
参考技术A 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()*/本回答被提问者采纳
参考技术B 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);
参考技术C 你说的好像是SQLHELPER类的,这个一般用的比较广泛的,试一下用ADO的......... 参考技术D 推荐http://tieba.baidu.com/f?kz=548059460,去看一下,有用.

参考资料:http://tieba.baidu.com/f?kz=548059460

SQL语句问题(关于日期加减与字段加减)

我用的工具是VB和ACCESS.
我的KC(库存)表中有”生产日期”(日期/时间型),”保质期”(数字型)字段.
现在我想写一条查询过期商品的SQL语句.

应该怎么写呢?

参考技术A select * from KC where 生产日期 < dateadd('d',0-保质期,now())
根据"保质期"中存储的是天数还是日数来选择dateadd的计算类型,dateadd具体用法可以参照数据库使用说明.
参考技术B 假设“保质期”单位为年
select * from where DATEADD('y', 保质期, 生产日期)>now()

你没有说指明 “保质期” 是年、月还是日,
年 y
月 m
日 d
参考技术C 第一条答案应该是正确的,我一直也不用Access,第二条答案也没错,这是T-SQL中的写法,但是不知道是否适合Access。

以上是关于sql语句加参数的主要内容,如果未能解决你的问题,请参考以下文章

带参数的sql查询语句

在sql的where条件下怎么加判断语句?

JPA 以SQL语句实现分页加模糊查询(参数可能为空)

sql语句啥时候加引号?

sql语句啥时候加引号

sql语句查询如何显示第一条数据