SQL - 将表中的行复制到具有修改值的行

时间:2013-09-03 10:54:34

标签: c# sql sql-server winforms

您好我尝试将多行从表复制到另一行,如下所示:

DataSet dt2 = new DataSet();
SqlDataAdapter SDA2 = new SqlDataAdapter("SELECT text,castka FROM zajsluz WHERE akce='" + tentoradek + "' and rocnik='" + klientClass.Rocnik() + "'", spojeni);
SDA2.Fill(dt2);
spojeni.Close();

string sqlcom2 = "INSERT INTO zajsluz(akce,text,castka,rocnik) values (@akce,@text,@castka,@rocnik)";

SqlCommand sc2 = new SqlCommand(sqlcom2, spojeni);
sc2.Parameters.AddWithValue("@akce", zakce.Text);
sc2.Parameters.AddWithValue("@rocnik", klientClass.Rocnik());
sc2.Parameters.AddWithValue("@text", dt2.Tables["zajsluz"].Columns["text"]);
sc2.Parameters.AddWithValue("@castka", dt2.Tables["zajsluz"].Columns["castka"]);
spojeni.Open();
sc2.ExecuteNonQuery();
spojeni.Close();

但我得到了这个: 在执行sc2.Parameters.AddWithValue("@text", dt2.Tables["zajsluz"].Columns["text"]);

时,对象引用未设置为对象的实例

1 个答案:

答案 0 :(得分:3)

您需要insert . . . select形式的insert。结构看起来像:

INSERT INTO zajsluz(akce, text, castka, rocnik)
    SELECT @skce, text, castka, @rocnik 
    FROM zajsluz
    WHERE akce='" + tentoradek + "' and rocnik='" + klientClass.Rocnik() + "'"

您需要插入变量的值以获得所需的值。