将数据行从 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 中的另一个表中

从第 1 行开始将行从一个表插入到另一个表?

将用户服务的最后状态插入 SQL Server 中的另一个表

在 SQL 中将行从一个表复制到另一个表

SQL - 如何从 Mysql 中的另一个表插入附加到 Id 的新行