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


(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();//执行第二条插入语句

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值