我正在尝试使用C#将一些数据插入到我的MySql表中,但我遇到了一些问题 我添加了MySql.Data.MySqlClient引用。
我在网上看了一些教程,发现了一些像cmd.Parameters.AddWithValue
这样的代码;但是,当我尝试编写此代码时,它没有显示任何想法为什么?它只显示.Add
。
我创建了一个简单的表'inf',它有一个id,name和surname,其中id是主键,它在autoIncrement
上。我的代码如下:
string connString = "Server=localhost;Database=insertdeneme;Uid=****;Pwd=********;";
MySqlConnection mcon = new MySqlConnection(connString);
mcon.Open();
string cmdText = "INSERT INTO inf VALUES (null, @name, @surname)";
MySqlCommand cmd = new MySqlCommand(cmdText, mcon);
cmd.Parameters.Add("@name", txtname.Text);
cmd.Parameters.Add("@surname", txtsurname.Text);
cmd.ExecuteNonQuery();
程序编译但是当我按下按钮时出现以下错误:
列数与第1行的值计数不匹配
当我从值中删除null时,我得到:
列'name'不能为null
那么您认为代码的问题是什么?
编辑:我有一个表单,两个文本框和一个按钮(txtname.text,txtsurname.text,btn.register)。我添加了mysql.data.mysqlclient
引用。
我使用phpMyAdmin创建了一个数据库,在我的表中我有id名称和姓氏,其中id是主要的,自动增量为11位,姓氏姓氏是varchar的类型,限制为255个字符,其余代码在上面。
我也不明白为什么我无法使用addwithvalue
。
错误1'MySql.Data.MySqlClient.MySqlParameterCollection'不包含'addWithValue'的定义,并且没有扩展方法'addWithValue'接受类型'MySql.Data.MySqlClient.MySqlParameterCollection'的第一个参数可以找到(是您缺少using指令或程序集引用?)C:\ Users \ FOREVER \ documents \ visual studio 2010 \ Projects \ InsertInto1 \ InsertInto1 \ Form1.cs 63 32 InsertInto1
答案 0 :(得分:3)
id是主键,它位于autoIncrement
上
然后不要尝试插入id
。 特别是不要尝试将null
值插入主键。由于您只是将数据插入表格的两列,请指定这些列:
INSERT INTO inf (name, surname) VALUES (@name, @surname)
答案 1 :(得分:1)
我认为你的给定ID是自动增量,如果你提到自动增量意味着不提null value
你应该删除空,...
<强>更新:1 强>
string cmdText= "INSERT INTO inf(name, surname) VALUES (@name, @surname)";
MySqlCommand cmd = new MySqlCommand(cmdText, mcon);
cmd.Parameters.AddWithValue("@name", TextBox1.Text);
cmd.Parameters.AddWithValue("@surname", TextBox2.Text);
cmd.ExecuteNonQuery();