C#项⽬实例中SQL查询语句使⽤
以下是学习中⼩结,若有幸被⼤侠看到,⽂章中的错误还望不吝赐教。。。。
C#中使⽤ SQL语句
⾸先注意两点:
第⼀、语句的构造是否正确,第⼆、与程序交互时,使⽤到的⼀些变量
1. 在sql语句中。如果某个字段的数据类型不为数字形式,那么在sql语句中,如条件判断...都需要⽤到(两个单引号)将数据括起来;例
如:
表[student] id(⾃动编号) uID(学号) uName(学⽣姓名)
-->查询(名字是李世民的学⽣信息) :
select uID, uName FROM student WHERE uName = '李世民'
2.在C#中,string 类型的变量需要使⽤(两个双引号) “” 括起来
结合以上两点、在c#中拼凑SQL查询语句你就可以这样使⽤
string str_Sql = " SELECT uID, uName FROM student WHERE uName ='李世民'";
---------------------------------------------------------------------------
1.⾸先把你的SQL语句构造好。不要先加变量
string str_Sql = " SELECT uID, uName FROM student WHERE uName = ' "+ +" ' " ;
2.在需要使⽤变量的位置,⽤(两个双引号)将这句话分开。
现在它只不过是字符串⽽已;
在这其中,你可以看出来,where后加⼊的两个双引号,⼀个是⽤来结束,与最开头的双引号对应。
---->在c#语句中。使⽤两个双引号将字符串括起来。注意⼀定要成对
---->连接两个字符串所有的操作符是 + 号
-
--------------------------------------------------------
string str_Sql =" SELECT uID, uName FROM student WHERE uName = ' "+变量 +" ' " ;
总结:双引号" 和加号 + 是C#中的定界符.
两个双引号之中的字符都被程序认定为字符串不参与任何计算或是程序的执⾏。仅仅是字符串。⽽加号是连接两个字符串的定界符。
⽐如 string str_Print = "我是" + "天下第⼀";
变量 str_Print的值为我是天下第⼀
单引号'是SQL语句中对数据类型为字符类型的字段使⽤的nvarchar ntext nchar 。。。
----------------------------------------------------------------------------------------
//some 查询语句
------------------
//定义sql语句
---------------------------------
string sql=string.Format(insert into BookInfo values('{0}' , '{1}' ,'{2}' ,'{3}' ,'{4}' ,'{5}' ,'{6}' ", booktype,bookauthor,bookpic,bookprice,bo
-------------------------------------------------------
(1)拼接产⽣SQL语句:
以下是代码⽚段:
string sql = "insert into czyb(yhm,mm,qx) values('" + txtName.Text + "','" + txtPassword.Text + "','" + cmbPriority.Text + "')";
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);
(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),推荐采⽤本⽅法。
sql查询语句实例大全(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); //传⼊参数
cmd.Parameters["@name"].Value = txtName.Text.Trim();
由于存储过程是数据库预编译的,执⾏效率⾼,推荐采⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论