【发布时间】:2021-01-20 04:38:17
【问题描述】:
上下文:我正在 Visual Studio 中开发一个适用于 Windows 的应用程序,该应用程序在 Sql Server 中有一个库存材料表和另一个已购买材料表。 我希望您每次购买时都会将其添加到库存表中。
我是结合使用 SQL 和 c# 的新手。
我正在从教程中尝试这个,但什么也没做。也不例外。
string cmdString = "Insert INTO Table1 (Column_name) VALUES (@val1)";
string connString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True";
using (SqlConnection conn = new SqlConnection(connString))
{
using (SqlCommand comm = conn.CreateCommand())
{
comm.Connection = conn;
comm.CommandText = cmdString;
comm.Parameters.AddWithValue("@val1", Value);
try
{
conn.Open();
comm.ExecuteNonQuery();
conn.Close()
}
catch(SqlException ex)
{
}
}
}
这是完全错误的还是我应该改变一些东西?
编辑:我想通了。我在列中插入 val1,但 ID 为空,因此引发 NullId 异常。由于某种原因,在调试模式下我看不到它。
感谢您的帮助。如果我有自动增量的 Table1 为什么它需要一个 ID?有一种方法可以在插入某些东西时自动生成 ID?
【问题讨论】:
-
你在数据库中插入过什么吗?
-
你应该在 catch 块中做点什么。还是您的意思是您永远不会进入 catch 块?
-
您最好在数据插入时执行触发器并插入到另一个表中。
-
这能回答你的问题吗? Why saving changes to a database fails?
标签: c# sql .net sql-server visual-studio