2011-06-11 111 views
2

我正在使用MySql数据库,并且在我的表中创建了一个名为ID的字段,该字段设置为自动递增且不为空。不过,我收到一个错误:如何解决错误:密钥不能为空。参数名称:c#中的键?

ERROR: Key cannot be null. Parameter name: key

我在GridView给出datakeynames="ID"。这有什么不对吗?

当我在查询点放置一个断点,并直接插入数据到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(); 
+1

作为提示,请查看这篇文章,这是一篇关于如何撰写问题以获得良好答案的重要指南:http://tinyurl.com/so-hints编写一个好问题本身就是一门艺术: - ) – 2011-06-11 10:48:29

回答

-2

首先,你必须连接到你的数据库,所以你需要创建一个ConnectionString那么你的代码将工作,

这意味着你是在空中,并试图acdcess降落伞,是不是在你的背部。这对你有意义吗?

0

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

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

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

+0

true.mine是一个愚蠢的错误。 – 2011-06-12 03:41:39

0

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

+0

我相信连接字符串被省略,如果你再次阅读问题,你会发现文字“当我把一个断点...”,这表明这种错误发生在发布模式,但不是在调试时发生。 – Patrick 2011-06-11 11:15:49

相关问题