从table1中选择数据并将其复制到table2

时间:2013-03-04 10:06:34

标签: c# sql database

我是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#真的不太了解。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

您可以使用以下方式执行此操作:

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

只有当table1& table2具有相同的结构。如果两个表格具有不同的结构,则需要将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();
}

答案 1 :(得分:1)

  

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

INSERT INTO targettable
SELECT * FROM custdetails WHERE billid = @billid;