使用C#和SQL Server,在一个表中插入来自另一个表的值,使用一个变量。

8 浏览
0 Comments

使用C#和SQL Server,在一个表中插入来自另一个表的值,使用一个变量。

我需要从另一个表中获取一些值并将它们插入到一个表中。这是我的代码:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString);
SqlCommand myCommand = new SqlCommand("SELECT Name FROM TableName WHERE Id = '" + Id + "'", con);
SqlDataReader rdr = myCommand.ExecuteReader();
if (dr.HasRows)
{
    while (rdr.Read())
    {
        // 用户存在 - 获取邮箱
        string Name = rdr["Name"].ToString();
    }
}

我的问题是如何将姓名插入另一个表中。

我不想使用文本框,值必须作为变量插入到另一个表中。我使用以下脚本插入数据,但是出现错误消息说找不到Id。请告诉我是否有遗漏的东西。

SqlCommand cmd = new SqlCommand(@"insert into finalTable (AccountNumber) VALUES (@string)", con);

0
0 Comments

问题的出现原因是在执行插入数据的操作时,出现了"Id not found"的错误信息。根据错误信息,可以推测Id可能是主键列,并且没有设置为自动增长,因此需要为Id列指定一个值。由于是插入操作,所以该值必须是表中尚未使用的。根据需求的不同,可以考虑将finalTable表的Id列设置为自动增长。

另外,代码中没有正确释放实现了IDisposable接口的对象(如数据库连接)。使用using关键字可以很好地解决这个问题。

另外,原文中提到自己将Name插入了AccountNumber,这可能是导致输出问题的原因。

下面是整理后的文章:

在使用C#和SQL Server时,我遇到了一个问题:在从一个表中使用变量插入另一个表时,出现了"Id not found"的错误信息。

下面是我使用的插入数据的脚本:

SqlCommand cmd = new SqlCommand(@"insert into finalTable (AccountNumber) VALUES
        ()", con);

根据错误信息,我推测Id可能是主键列,并且没有设置为自动增长,因此需要为Id列指定一个值。由于是插入操作,所以该值必须是表中尚未使用的。根据需求的不同,可以考虑将finalTable表的Id列设置为自动增长。

另外,我注意到在代码中没有正确释放实现了IDisposable接口的对象,比如数据库连接。为了解决这个问题,我可以使用using关键字来自动释放这些资源。

另外,我还发现自己将Name插入了AccountNumber,这可能是导致输出问题的原因。

通过对问题进行分析,并采取相应的解决方法,我最终成功解决了这个问题。希望本文对遇到类似问题的读者有所帮助。

0