-2

あるテーブルから選択して、それを別のテーブルidに挿入したい。idまず、最初のテーブル ID を読み取り、それを文字列に渡す必要があります。次に、その文字列を 2 番目のテーブルに渡す必要があります。

String selQuery = "SELECT Id FROM MapDataImage WHERE Source='" + TextBox1.Text + "';";
{
    int MId = int.TryParse(Id);
    String QueryStr = "INSERT INTO User_Images VALUES (@Image)";
    SqlCommand scmd = new SqlCommand(QueryStr, conn);
    SqlDataReader sqldread = scmd.ExecuteReader();

    //String QueryStr = "UPDATE MapDataImage SET Image = @Image WHERE Source='" + TextBox1.Text + "';";
    //SqlCommand scmd = new SqlCommand(QueryStr, conn);
    scmd.Parameters.Add("@Image", SqlDbType.VarBinary).Value = imgbytes;
    scmd.ExecuteNonQuery();
}

これは正しいですか?

int MId = int.TryParse(Id); //the name id does not exist in current context?

しかし、データベースから特定の id 値を取得したい

また

int MId = int.TryParse(@Id);
4

2 に答える 2

1
int MId = int.Parse("Id");

決してうまくいきません。"Id"は文字列リテラルであり、整数になることはできません。変数を指定する必要があると思います

int mId = int.Parse(id);

それはさておき、TryParseより安全に使用してみてください。

を防ぐためにステートメントにも使用paramerterised queriesしてください。SELECTSQL Injection

残りのコードを投稿してください。対応するように回答を調整します。

于 2013-07-05T10:33:46.357 に答える
0

自分で DataReaders オブジェクトを作成しません。代わりに、Command クラスの ExecuteReader メソッドを呼び出して、DataReader オブジェクトへの参照を取得します。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executereader.aspx

于 2013-07-05T10:33:59.757 に答える