0

SqlCommandの結果をInt値に変換したいのですがどうすればよいですか?私が試したことは以下のとおりです。

テーブルのstp_noにはIdentityプロパティが設定されています。そして、その自動生成された数値を別のテーブルに挿入したいのですが、「SqlCommand型をInt型に変換しない」のようなエラーが常に表示されます

    SqlCommand dvgcmd, snocmd;
    snocmd = new SqlCommand("SELECT stp_no FROM MaterialTestMaster", con);
    dvgcmd = new SqlCommand("INSERT INTO MaterialTestDetail(stp_no,test_no,test_name,test_type,test_spec,high_limit,low_limit)" +
                                                     "VALUES('"+ snocmd +"','" + @matTstDataGridView.Rows[j].Cells[0].Value + "'," +
                                                             " '" + @matTstDataGridView.Rows[j].Cells[1].Value + "'," +
                                                             " '" + @matTstDataGridView.Rows[j].Cells[2].Value + "'," +
                                                             " '" + @matTstDataGridView.Rows[j].Cells[3].Value + "'," + 
                                                             " '" + @matTstDataGridView.Rows[j].Cells[4].Value + "'," +
                                                             " '" + @matTstDataGridView.Rows[j].Cells[5].Value + "')", con);

Mがこの問題を解決するのを手伝ってください:)

4

2 に答える 2

0
SqlCommand dvgcmd;
dvgcmd = new SqlCommand("INSERT INTO MaterialTestDetail(stp_no,test_no,test_name,test_type,test_spec,high_limit,low_limit)" +
                                                 "VALUES((SELECT stp_no FROM MaterialTestMaster),'" + @matTstDataGridView.Rows[j].Cells[0].Value + "'," +
                                                         " '" + @matTstDataGridView.Rows[j].Cells[1].Value + "'," +
                                                         " '" + @matTstDataGridView.Rows[j].Cells[2].Value + "'," +
                                                         " '" + @matTstDataGridView.Rows[j].Cells[3].Value + "'," + 
                                                         " '" + @matTstDataGridView.Rows[j].Cells[4].Value + "'," +
                                                         " '" + @matTstDataGridView.Rows[j].Cells[5].Value + "')", con);
于 2012-05-12T06:44:05.793 に答える
0

juergen の答えが機能するはずです。最初にコマンドを実行してから、結果を次のように使用する必要があります。

int id = int.Parse(snocmd.ExecuteScalar().ToString());
dvgcmd = new SqlCommand("INSERT INTO MaterialTestDetail(stp_no,test_no,test_name,test_type,test_spec,high_limit,low_limit)" +
                                                 "VALUES('"+ id +"','" + @matTstDataGridView.Rows[j].Cells[0].Value + "'," +
                                                         " '" + @matTstDataGridView.Rows[j].Cells[1].Value + "'," +
                                                         " '" + @matTstDataGridView.Rows[j].Cells[2].Value + "'," +
                                                         " '" + @matTstDataGridView.Rows[j].Cells[3].Value + "'," + 
                                                         " '" + @matTstDataGridView.Rows[j].Cells[4].Value + "'," +
                                                         " '" + @matTstDataGridView.Rows[j].Cells[5].Value + "')", con);
于 2012-05-12T06:50:56.910 に答える