2011-07-02 8 views
2

私はC#で作業していて、Accessデータベースにデータを挿入しています。それは正常に実行されますが、データを挿入しようとするとクラッシュします。アクセスデータベースへのデータの挿入時にクラッシュする

public partial class StudentInfo : Form 
{ 
    private OleDbConnection myCon; 

    public StudentInfo() 
    { 
     InitializeComponent(); 
     myCon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\database program\database program\Students.mdb"); 
    } 


    private void InsertBtn_Click(object sender, EventArgs e) 
    { 
     OleDbCommand cmd = new OleDbCommand(); 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = "Insert into StudentInfo(Rollno,SName,SFather,SAdress) Values ('"+ Rollnotb.Text+"','"+nametb.Text+"','"+fathertb.Text+"','"+adresstb.Text+"')"; 
     cmd.Connection=myCon; 
     myCon.Open(); 
     cmd.ExecuteNonQuery(); 
     myCon.Close(); 
    } 
} 
+1

エラーは何ですか? – ChrisBint

+0

データの挿入時にエラーが発生するだけでエラーが発生しない – Furqi

答えて

3

問題は、あなたがtext値としてすべてのフィールドを挿入すると、おそらくいくつかは、MS Accessのテーブルに数値として定義されていることもできます(rollNo?)

また、あなたのクエリでparemetersを使用してに慣れます:

cmd.CommandText = "Insert into StudentInfo(Rollno,SName,SFather,SAdress) Values (?,?,?,?)"; 
cmd.Parameters.Add(new OleDbParameter("@rollNo", rollNoValue)); //etc. 
+0

はいrollnoはMS Accessの数値です。 – Furqi

関連する問題