关于C#执行多个SQL语句的一些操作——Note on Dec. 19th

来源:互联网 发布:免费接单大厅 淘宝 编辑:程序博客网 时间:2024/06/06 03:38


(MySQL)

对于查询语句,单查询结构利用ExecuteScalar()函数,可以减少占用资源。并且返回为一个object对象,可以自动释放。

而函数ExecuteReader()方法,需要创建MySqlDataReader对象,并且使用完之后必须释放资源。

 

处理带参数的SQL语句

之前做项目,对于带参数的SQL语句,一直利用string.Format()函数,生成需要的SQL语句。

今天发现另一种处理参数的方法,即利用问号(?)和变量名代理,例如:“?var”来代替参数。可以通过Add()方法为参数复制。

com.CommandText = "INSERT INTO table(name1,name2) VALUES(?name1,?name2)";com.Parameters.Add("?name1",value1);com.Parameters.Add("?name2",value2);com.ExecuteNonQuery();

 

如果需要执行多个SQL语句,那么必须要使用MySqlParameter对象。可以通过Add()函数为SQL语句中参数设置数据类型。然后通过Prepare()方法对SQL语句进行处理,再通过value属性复制。

MySqlParameter p_name1,p_name2;MySqlCommand com;com.Connection = conn;com.CommandText = "INSERT INTO table(name1,name2) VALUES(?name1,?name2)";p_name1 = Parameters.Add("?name1",type1);p_name2= Parameters.Add("?name2",type2);com.Prepare();p_name1.Value = value1;p_name2.Value = value2;com.ExecuteNonQuery();


 

例程

MySqlParameter p_id,p_stu;MySqlCommand com;com.Connection = conn;com.CommandText = "INSERT INTO table(name1,name2) VALUES(?name1,?name2)";p_id = Parameters.Add("?id",MySqlDbType.Int32);p_stu = Parameters.Add("?stu",MySqlDbType.VarChar);com.Prepare();p_id.Value = 19;p_stu.Value = "张三";com.ExecuteNonQuery();//执行第一条插入语句p_id.Value = 12;p_stu.Value = "李四";com.ExecuteNonQuery();//执行第二条插入语句

 

	
				
		
原创粉丝点击