C#中产生SQL语句的几种方式

 我来答
须稷0h0
2013-08-26 · 超过67用户采纳过TA的回答
知道答主
回答量:138
采纳率:85%
帮助的人:58.3万
展开全部
(1)拼接产生SQL语句: OleDbCommand cmd = new OleDbCommand(sql, conn); 这种方法写法比较复杂,且安全性低,容易遭受SQL注入攻击。 (2)用string.Format方法: string sql = string.Format("insert into czyb(yhm,mm,qx) values('{0}','{1}','{2}')", txtName.Text, txtPassword.Text, cmbPriority.Text); 只是可读性优于第(1)种。 (3)用参数化SQL语句: string sql="insert into czyb(yhm,mm,qx) values (@yhm,@mm,@qx)"; OleDbCommand cmd = new OleDbCommand(); cmd.CommandText = sql; cmd.Parameters.AddWithValue("@yhm", txtName.Text); cmd.Parameters.AddWithValue("@mm", txtPassword.Text); cmd.Parameters.AddWithValue("@qx", cmbPriority.Text); cmd.Connection = conn; conn.Open(); cmd.ExecuteNonQuery(); 代码结构清楚,对于不支持存储过程的数据库(如Access),推荐采用本方法。 (4)如果数据库支持存储过程(如SQL Server),可以调用存储过程执行SQL: SqlConnection conn = new SqlConnection(txtConn); SqlCommand cmd = new SqlCommand("SearchContact", conn);//存储过程名称为SearchContact cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@name", SqlDbType.VarChar, 50); //传入参数 由于存储过程是数据库预编译的,执行效率高,推荐采用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式