如何解决ERROR:Key不能为null。参数名称:c#中的键?

时间:2011-06-11 10:34:42

标签: c# asp.net mysql

我正在使用MySql数据库,并且我在名为ID的表中创建了一个字段,该字段设置为自动递增而不是null。但是,我收到的错误是:

  

错误:键不能为空。参数名称:key

我在datakeynames="ID"中提供了GridView。这有什么不对吗?

当我在查询点放置断点并直接将数据插入mysql时,插入时没有任何问题。

这是我的GridView声明:

<asp:GridView ID="grdUploadedFiles" runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="7" DataKeyNames="ID" ..>

我的SQL声明:

INSERT into tbluploadedfilesdetail (FileType,FileName,FileExt,FilePath,WebUrl) VALUES (...)

它在myobjcon.open()语句中给出了这个错误

MySqlConnection objMyCon1 = new MySqlConnection();
objMyCon1.Open();
MySqlCommand cmd1 = new MySqlCommand(getSQL1, objMyCon1);
cmd1.ExecuteNonQuery();
objMyCon1.Close();
dbLoad();

3 个答案:

答案 0 :(得分:0)

好的,所以我们终于到了可以看到一些代码的地方,所以请注意:

MySqlConnection objMyCon1 = new MySqlConnection(); 
objMyCon1.Open(); 

什么是objMyCon1应该打开?您没有向对象提供有关它应该做什么的任何信息。当然,这是一个MySqlConnection,但它需要知道数据库在连接之前的位置。

答案 1 :(得分:0)

您创建MySqlConnection objMyCon1 = new MySqlConnection();并尝试打开,但您需要指定我认为的连接字符串(找到熟悉的here)。

答案 2 :(得分:-2)

首先,您已连接到数据库,因此您需要创建ConnectionString,然后您的代码才能正常运行,

这意味着你在播出并试图接下不在你背后的降落伞。这对你有意义吗?