将数据行从 C# 中的另一个 sql 表插入到 sql 表中
Posted
技术标签:
【中文标题】将数据行从 C# 中的另一个 sql 表插入到 sql 表中【英文标题】:Inserting data row into a sql table from another sql table in C# 【发布时间】: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 块? "AddWithValue is Evil" 您最好在数据插入时执行触发器并插入到另一个表中。 这能回答你的问题吗? Why saving changes to a database fails? 【参考方案1】:您可以使用此查询插入这样的数据:
if (con.State == ConnectionState.Open)
con.Close();
SqlCommand cmd0561 = new SqlCommand(@"insert into Table1 (value1,value1) values
(@value1,@timee)", con);
cmd0561.Parameters.AddWithValue("@value1", value1.Text.Trim);
cmd0561.Parameters.AddWithValue("@value2", value2.Text.Trim);
con.Open();
cmd0561.ExecuteNonQuery();
con.Close();
【讨论】:
以上是关于将数据行从 C# 中的另一个 sql 表插入到 sql 表中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Microsoft Visual Studio 将查询插入到 C# 中的另一个查询中?
如果数据是从表中更新的,则应将数据插入到 SQL Server 2017 中的另一个表中