我有办法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
从插入中排除自动递增的列。
更改query
为:
//NOTE: We leave the "id" column out of the insert, SQL Server will handle this automatically
string query = "INSERT INTO page_counter (month, year, 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注入的一些背景知识,我建议阅读:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句