如何解决错误:密钥不能为空。参数名称:输入c#?

如何解决错误:密钥不能为空。参数名称:输入c#?,c#,asp.net,mysql,C#,Asp.net,Mysql,我使用的是MySql数据库,我在表中创建了一个名为ID的字段,该字段设置为自动递增且不为空。但是,我收到一个错误,如下所示: 错误:密钥不能为空。参数名称:key 我已经在我的GridView中给出了datakeynames=“ID”。这有什么不对劲吗 当我在查询点放置断点并直接将数据插入到mysql时,插入时没有任何问题 这是我的GridView声明: <asp:GridView ID="grdUploadedFiles" runat="server" AutoGenerateColum

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

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

我已经在我的
GridView
中给出了
datakeynames=“ID”
。这有什么不对劲吗

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

这是我的
GridView
声明:

<asp:GridView ID="grdUploadedFiles" runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="7" DataKeyNames="ID" ..>
它在myobjcon.open()语句中给出此错误

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

我们终于看到了一些代码,请注意:

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

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

好的,我们终于看到了一些代码,请注意:

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

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

您可以创建
MySqlConnection objMyCon1=new MySqlConnection()并尝试打开,但您需要指定我认为是的连接字符串(找到一些熟悉的东西)。

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

首先,您已经连接到数据库,因此需要创建一个
连接字符串,然后您的代码才能工作


这意味着你在空中,试图抓住一个不在你背后的降落伞。这对您有意义吗?

首先,您必须连接到数据库,因此需要创建一个
连接字符串
,然后您的代码才能工作


这意味着你在空中,试图抓住一个不在你背后的降落伞。这对你有意义吗?

作为一个提示,请查看这篇文章,这篇文章是一个关于如何写问题的很好的指南,以便在这里获得好的答案:写一个好问题本身就是一门艺术:-)作为提示,检查这篇文章,这是一个关于如何写问题以获得好答案的很好的指南,因此:写一个好问题本身就是一门艺术:-)我相信连接字符串被省略了,如果你再次阅读问题,你会发现文本“当我放置断点时…”这表明此错误发生在发布模式下,但不是在调试时。我相信连接字符串被忽略,如果您再次阅读此问题,您会发现文本“当我放置断点时…”,这表明此错误发生在发布模式下,而不是在调试时。