0

我是一个真正的 C# 新手。

我在这里看到了很多这样的问题。但是,在尝试时,我无法获得我的代码。

我希望检索一行的所有列,然后将其传输到同一数据库的另一个表。

所以基本上,检索数据table1并将其复制到table2.

我已经尝试了这么多代码。而且我很困惑如何直接调用检查字符串而不是在“”中定义str1字符串中的每一列。

 string check = "select * from custdetails where billid = @billid ";

         SqlCommand cmd1 = new SqlCommand(check , conn);
        cmd1.Parameters.AddWithValue("@billid", billid);

        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(cmd1);
        da.Fill(ds);
       // string str1;
        int count = ds.Tables[0].Rows.Count;
        if (count > 0)
        {
            string str1 = ds.Tables[0].Rows[0][""].ToString();
        }

我真的对c#没有太多的想法。感谢帮助。

4

2 回答 2

3

您可以使用:

INSERT INTO table2 (SELECT * FROM  table1 WHERE billid = @billid)

table1仅当&table2具有相同的结构时,上述内容才是 gud 。如果两个表的结构不同,您需要更改SELECT *SELECT [COLUMNS ,]...

完成复制数据后,您可以继续将数据读入您的应用程序

string check = "select * from custdetails where billid = @billid ";

SqlCommand cmd1 = new SqlCommand();
// use the command object to copy table first....
cmd1.Connection = conn;
cmd1.CommandText = "INSERT INTO table2 (SELECT * FROM  table1 WHERE billid = @billid)";
cmd1.ExecuteNonQuery();

//then continue doing the normal work
cmd1.CommandText = check;
cmd1.Parameters.AddWithValue("@billid", billid);

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd1);
da.Fill(ds);
// string str1;
int count = ds.Tables[0].Rows.Count;
if (count > 0)
{
    string str1 = ds.Tables[0].Rows[0][""].ToString();
}
于 2013-03-04T10:09:59.830 回答
1

您可以通过以下行来实现它。

INSERT INTO targettable
SELECT * FROM custdetails WHERE billid = @billid;
于 2013-03-04T10:13:02.153 回答