c# – 插入自动增量
发布时间:2020-12-15 23:42:59 所属栏目:百科 来源:网络整理
导读:我有一个方法Insert().除了自动增量之外,一切都按预期工作.这是代码: public void Insert(string m1,int y1,int new_count) { string query = "INSERT INTO page_counter (id,month,year,page_count) VALUES('','"+m1+"',"+y1+","+new_count+")"; //create
我有一个方法Insert().除了自动增量之外,一切都按预期工作.这是代码:
public void Insert(string m1,int y1,int new_count) { string query = "INSERT INTO page_counter (id,month,year,page_count) VALUES('','"+m1+"',"+y1+","+new_count+")"; //create command and assign the query and connection from the constructor MySqlCommand cmd = new MySqlCommand(query,connection); //Execute command cmd.ExecuteNonQuery(); //close connection this.CloseConnection(); } 我的Id列是自动增量.所以我的问题是如何将值插入数据库中继续表中的自动增量为id? 解决方法
您所要做的就是从插入中排除自动递增的IDENTITY列.
将您的查询更改为: //NOTE: We leave the "id" column out of the insert,SQL Server will handle this automatically string query = "INSERT INTO page_counter (month,page_count) VALUES (@Month,@Year,@PageCount)"; SQL将负责ID字段. 您可能会注意到我在查询中使用了标量变量.您可以(并且应该)在命令中分配这些内容,以便排除SQL注入的可能性: 编辑因为来自MySql.Data.MySqlClient PRE 4.0的事实 MySqlCommand cmd = new MySqlCommand(query,connection); cmd.Parameters.Add(new MySqlParameter("@Month",m1)); cmd.Parameters.Add(new MySqlParameter("@Year",y1)); cmd.Parameters.Add(new MySqlParameter("@PageCount",new_count)); //Execute the INSERT cmd.ExecuteNonQuery(); 有关SQL注入的一点背景,我建议阅读: > SQL Injection on W3Schools (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |