0

C# は初めてで、プロジェクトの助けが必要です。手伝ってください!

MS Access DB にデータを挿入できる挿入関数を作成したいと考えています。ただし、ステートメントの最後にセミコロン (;) がないというエラーが表示され続け、データは終了しません。

以下は私のコードです、

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Insert
{
    public partial class Form1 : Form
    {

    OleDbConnection vcon= new  OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C://Database//HelloDB.accdb");
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        vcon.Open();

    }

    private void buttonExit_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void buttonSave_Click(object sender, EventArgs e)
    {
        string ab = string.Format("insert into Hello values(id, 'Hname'))", int.Parse(textBox1.Text), textBox2.Text);
        OleDbCommand vcom = new OleDbCommand(ab, vcon);
        vcom.ExecuteNonQuery();
        MessageBox.Show("Data stored successfully");
        vcom.Dispose();
    }

}
4

2 に答える 2

1

まず、この行が私に突き出ています:

string ab = string.Format("insert into Hello values(id, 'Hname'))", int.Parse(textBox1.Text), textBox2.Text);

私はそれが読むべきだと信じています:

                                                            /*!*/
string ab = string.Format("insert into Hello values({0}, '{1}')", int.Parse(textBox1.Text), textBox2.Text);

次に、これにはパラメーター化された SQL を使用する必要があります。これは、ステートメントにパラメーター化された SQL を使用する方法を示すために私が書いた例ですこのコードは、やUPDATEなどの他のステートメント タイプにほとんど適用できます。SELECTINSERT

ただし、実際には、データ アクセスでの JET/ACE の使用を評価する必要があります。JET は Windows に付属していますが、ACE には付属していません。したがって、コードでは ACE に依存しています。代わりに、SQL Server LocalDB に依存する方がよいかどうかを検討してください。

于 2013-01-12T05:29:56.593 に答える
0

クエリを次のように置き換えます。

string ab = string.Format( "Hello 値 ({0}, '{1}') に挿入", int.Parse( textBox1.Text ), textBox2.Text );

于 2013-01-12T05:56:47.480 に答える