-1

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

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"]);

4

1 回答 1

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() + "'"

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

于 2013-09-03T10:57:33.913 回答