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 に答える