0

オブジェクト参照をインスタンスに設定する方法を教えてもらえますか? .... ここで、user_id はテキストボックスの値を sql ステートメントに取り込むパラメーターです。

private void button1_Click(object sender, EventArgs e)
{

    OracleConnection con = new OracleConnection("Data Source=KBETEST; Persist Security Info=TRUE; User ID=dbo; Password=dbo123; Unicode=True");
    DataSet ds = new DataSet();
    OracleDataAdapter adap = new OracleDataAdapter();
    OracleCommandBuilder b = new OracleCommandBuilder(adap);

    adap = new OracleDataAdapter("insert into banks_ben_branch_99 (ben_bank_id, ben_brn_code, brn_name,ben_brn_addr1, ben_brn_loc, ben_brn_state, ben_brn_city, ben_bank_city, coun_code,brn_stat, remarks, brn_id, user_id, pc_tcp_ip, rtgs_stat, pay_brn_code,sys_date) select bankid,benbrn_code,brn_name,substr(brn_addr,1,100),brn_loc, brn_stat, brn_city, brn_city, coun_code,'A', remarks, '15', :user_id,'172.20.1.109', rtgs_stat, benbrn_code,sysdate from bbbt",con);
    adap.InsertCommand.Parameters.Add("user_id", OracleType.VarChar,20, "user_id").Value = textBox1.Text;
    adap.Fill(ds,"A");
    DataTable table = ds.Tables["A"];
    dataGridView1.DataSource = ds.Tables["A"];
    con.Dispose();
}

ありがとう!

編集

private void button1_Click(object sender, EventArgs e)
    {

       OracleConnection con = new OracleConnection("Data Source=KBETEST; Persist Security Info=TRUE; User ID=dbo; Password=dbo123; Unicode=True");
       DataSet ds = new DataSet();
       OracleDataAdapter adap = new OracleDataAdapter();
       OracleCommandBuilder b = new OracleCommandBuilder(adap);
       string str = "insert into banks_ben_branch_99 (ben_bank_id, ben_brn_code, brn_name,ben_brn_addr1, ben_brn_loc, ben_brn_state, ben_brn_city, ben_bank_city, coun_code,brn_stat, remarks, brn_id, user_id, pc_tcp_ip, rtgs_stat, pay_brn_code,sys_date) select bankid,benbrn_code,brn_name,substr(brn_addr,1,100),brn_loc, brn_stat, brn_city, brn_city, coun_code,'A', remarks, '15', :user_id, '172.20.1.109', rtgs_stat, benbrn_code,sysdate from bbbt";
       con.Open();
       adap.InsertCommand = new OracleCommand(str, con);
       adap.InsertCommand.Parameters.Add("user_id", OracleType.VarChar,20).Value = textBox1.Text;
       adap.InsertCommand.ExecuteNonQuery();

       con.Dispose();
        }

皆さん、助けてくれてありがとう!! わかった!

4

4 に答える 4

3

編集:コードには複数の問題があります:

  • user_idコマンドではパラメーターを指定していませんが、SQL にはあります。
  • InsertCommand挿入 SQL を指定していないにもかかわらず、アダプタのを使用しようとしています
  • データセットを入力しようとしていますが、クエリを指定していません - 挿入コマンドだけです。

データアダプターをまったく使用すべきではないと思います。データを挿入する必要がある場合は、次を使用します。

using (var connection = new OracleConnection(...)
{
    connection.Open();
    string sql = "insert into banks_ben_branch_99 [... as before ...]";
    using (var command = new OracleCommand(sql, conn))
    {
        command.Parameters.Add("user_id", OracleType.VarChar, 20)
                          .Value = textBox1.Text;
        command.ExecuteNonQuery();
    }
}
于 2013-11-12T06:58:24.357 に答える
2

null 許容列ではないと思いuser_idます。パラメーターが空の場合に発生します。まず、パラメータ名が一致しません。その後、テキストボックスが空の場合でも発生する可能性があります。検証のためにクライアント側で確認することをお勧めします。

于 2013-11-12T07:02:15.090 に答える