「ovhidhan_e_word」という名前のデータベースがあり、行の繰り返しを含むという名前のテーブルがあります。しかし、「ovidhan」という名前の別のデータベースの下にある名前の別のテーブルTable1
にコピーしたいのですが、今回は行の繰り返しは必要ありません.私はこのコードを使用しました:Table1
dic
string english_w = "";
SqlConnection mssql_con = new System.Data.SqlClient.SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Imon-Bayazid\Documents\ovhidhan_e_word.mdf;MultipleActiveResultSets=true;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlConnection con2 = new System.Data.SqlClient.SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Imon-Bayazid\Documents\ovidhan.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
mssql_con.Open();
SqlCommand mssql_cmnd = new System.Data.SqlClient.SqlCommand("SELECT * from Table1", mssql_con);
SqlDataReader rd = mssql_cmnd.ExecuteReader();
while (rd.Read())
{
english_w = rd.GetString(0);
con2.Open();
SqlCommand cmnd2 = new System.Data.SqlClient.SqlCommand("select * from dic where english=@h",con2);
cmnd2.Parameters.AddWithValue("@h",english_w);
SqlDataReader r = cmnd2.ExecuteReader();
if (r.Read())
{ }
else {
SqlCommand c = new System.Data.SqlClient.SqlCommand("insert into dic values(@k)", con2); ;
c.Parameters.AddWithValue("@k", english_w);
c.ExecuteNonQuery();
}
con2.Close();
}
mssql_con.Close();
ただし、 「このコマンドに関連付けられた開いている DataReader が既にあり、最初に閉じる必要があります」という例外が表示されます。行「c.ExecuteNonQuery();」
どうすればこれを解決できますか??? もう 1 つの質問は、mssql のテーブルから行の繰り返しを削除するにはどうすればよいですか??