【问题标题】:how to solve ERROR: Key cannot be null. Parameter name: key in c#?如何解决错误:键不能为空。参数名称:c#中的key?
【发布时间】:2011-06-11 10:34:42
【问题描述】:

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

错误:键不能为空。参数名称: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();

【问题讨论】:

  • 作为提示,请查看这篇文章,该文章是关于如何编写问题以获得良好答案的绝佳指南:tinyurl.com/so-hints 编写好问题本身就是一门艺术 :-)跨度>

标签: c# asp.net mysql


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我相信连接字符串被省略了,如果您再次阅读该问题,您会发现文本“当我放置断点时......”这表明在发布模式下会发生此错误,但不会调试。
    【解决方案3】:

    首先你已经连接到你的数据库,所以你需要创建一个ConnectionString 然后你的代码才能工作,

    这意味着您正在飞行并试图使用不在您背后的降落伞。你觉得有意义吗?

    【讨论】:

      猜你喜欢
      • 2015-11-05
      • 1970-01-01
      • 2019-06-07
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多