带参数语句通常用于批量操作,例如批量插入。

截取一小段代码,修改后做一个简单的示例:

1. 表结构:

CREATE TABLE `数据` (

`createtime` datetime NOT NULL,

`dt` datetime NOT NULL,

`val` float(7,2) DEFAULT NULL,

PRIMARY KEY (`createtime`,`dt`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

2. 带参数语句的使用

public static void Save(DateTime createtime, List dvs)

{

string sql = "INSERT INTO 数据 (createtime, dt, val) VALUES('" + createtime.ToString("yyyy-MM-dd HH:mm:ss") + "', @p1,@p2);";

using (MySqlConnection conn = new MySqlConnection(connStr))

{

conn.Open();

using (MySqlCommand cmd = conn.CreateCommand())

{

cmd.CommandText = sql;

cmd.Prepare();

for (int i = 0; i < dvs.Count; i++)

{

cmd.Parameters.Clear();

MySql.Data.Types.MySqlDateTime time = new MySql.Data.Types.MySqlDateTime(dvs[i].time);//注意:日期特殊处理

cmd.Parameters.AddWithValue("p1", time);

cmd.Parameters.AddWithValue("p2", dvs[i].val);

cmd.ExecuteNonQuery();

}

}

}

}

实际上,不只是日期,在 MySQL.Data.Types 中的类型,均需要做相应的转换。在一个就是参数用 @ 开头。

标签:语句,val,Parameters,C#,cmd,mysql,dt,createtime,dvs

来源: https://www.cnblogs.com/ShengunErshu/p/12566760.html

更多推荐