将数据插入数据库时​​出现未处理的异常

时间:2015-04-08 20:39:45

标签: c# sql database insert

当我遇到这个未处理的异常时,我试图将数据插入数据库:

  

System.Data.SqlClient.SqlException中出现System.Data.dll类型的例外但未在用户代码中处理

这是代码

public void addEvent(String username, int id, String date)
{
    String conString = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=\"C:\\Users\\SleekBook\\Documents\\Visual Studio 2013\\WebSites\\WebSite2\\App_Data\\Database.mdf\";Integrated Security=True";
    using (SqlConnection con = new SqlConnection(conString))
    {
        String sqlStringS = "INSERT INTO Users (Username, EventID, Date) VALUES (@Username, @EventID, @Date)";

        SqlCommand cmd = new SqlCommand(sqlStringS);
        cmd.CommandType = CommandType.Text;
        cmd.Connection = con;
        cmd.Parameters.AddWithValue("@Username", username);
        cmd.Parameters.AddWithValue("@EventID", id);
        cmd.Parameters.AddWithValue("@Date", date);

        con.Open();
        cmd.ExecuteNonQuery();
    }
}

如您所见,我尝试插入两个字符串和一个int。

错误发生在:

cmd.ExecuteNonQuery();
  

其他信息:无效的列名称'EventID'   列名称“日期”无效。

列名是正确的。

1 个答案:

答案 0 :(得分:0)

我建议这些:

  • 没有忘记dbo.TableName等表格前缀。
  • 始终对[
  • 等所有名称使用][prefix].[tablename].[fieldname]

例如,对此问题的更好查询是:

String sqlStringS = "INSERT INTO [dbo].[Users] ([Username], [EventID], [Date]) VALUES (@Username, @EventID, @Date)";