2016-10-23 6 views
0

私は自分のPOSシステムで作業しています。このコードを使用してアプリケーションでアイテムの数量を編集しようとします。私がしたことは、バーコードIDを検索できる検索バーがあり、データがテキストボックスに表示されるということでした。 (IE:元の数量がtextBox1に表示されます。私はそのtextBox.Text + "1"を取得します[ここでは詳しくは触れませんが、コード]が必要な場合はコメントしてください)。C#でMicrosoft Accessの結果を編集して保存します

Error image

ここでのコードは次のとおりです。今、私はエラーです。ここ (つまり、元のテキストボックス1を持っている)にリンクして編集データをAccessデータベースおよび第二テキストボックスから結果を挿入したいです

 using System.Data.OleDb; 
     using System.Drawing.Printing; 
     using System.IO; 
     using System.Drawing.Imaging; 

     namespace TestBarcode 
       { 
         public partial class POS : Form 
       { 
      private OleDbConnection connection = new OleDbConnection(); 


    public POS() 
    { 
     InitializeComponent(); 
      [email protected]"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\POS\Database\MainDatabase_POS.accdb; 
     Persist Security Info=False;"; 
    } 

     private void POS_Load(object sender, EventArgs e) 
    { 

      this.inventoryManagementTableAdapter.Fill(this.mainDatabase_POSDataSet.InventoryManagement); 
     checkBox1.Show(); 
     checkBox2.Hide(); 
     try 
     { 
      connection.Open(); 
      OleDbCommand command = new OleDbCommand(); 
      command.Connection = connection; 
      string query = "select * from InventoryManagement"; 
      command.CommandText = query; 

      OleDbDataAdapter da = new OleDbDataAdapter(command); 
      DataTable dt = new DataTable(); 
      da.Fill(dt); 
      dataGridView1.DataSource = dt; 

      connection.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error" + ex); 
     } 
    } 


    try 
     { 
      connection.Open(); 
      OleDbCommand command = new OleDbCommand(); 
      command.Connection = connection; 

    //EditTextHere 

      string query = "UPDATE InventoryManagement set Số_Lượng_Trong_Kho='" + textBox25.Text + "',Mã_Số_Vạch='" + textBox19.Text + "',Mã_thợ='" + textBox13.Text + "',Kiểu='" + textBox14.Text + "',Size_Giày='" + textBox15.Text + "',Màu='" + textBox16.Text + "',Giá='" + textBox17.Text + "'where ID=" + textBox24.Text + ""; 

command.CommandText = query; 

      command.ExecuteNonQuery(); 
      MessageBox.Show(query); 

      connection.Close(); 

     } 

     catch (Exception ex) 
     { 
      MessageBox.Show("Error" + ex); 
     } 

PS:(1)ベトナム語のテキストを無視して、好きなだけそれらの単語を置き換えることができます。

(2)申し訳ありませんが、テキストボックスの名前がランダムで非常に理解しにくいように、テキストボックスに縛られています。

これを行う方法はありますか?もしそうなら、助けてください。ありがとう。

+0

Updateコマンドと同様に、変数を単一引用符で囲むと、データベースエンジンに文字列として渡されます。エンジンが何か別のものを期待しているなら、あなたの '文字列'を期待値に変換しようとする可能性があります。いつかは、いつかはうまくいきます。パラメータの使用を開始し、データ型を正確に指定します。 – Steve

+0

私はdatarowを選択し、次にそれがどのdatarowであるかを指定し、私が選択したものを編集すればうまくいくのでしょうか?このよう : foreachの(dt.RowsでのDataRow DB) {,,,,, }ウィルこの作品? –

答えて

0

間違ったデータ型のパラメータを渡しているようです。テキストボックス&から渡された値のデータ型をデータベーステーブルの列で確認してください。私はいくつかのミスマッチがあると確信しています。

関連する問題