使用c#插入mysql表

时间:2014-04-08 11:59:47

标签: c# mysql phpmyadmin

我正在尝试使用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

2 个答案:

答案 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();