我知道這個問題已經被問了一百次,我已經看了他們所有人,不知道發生了什麼問題。 這是表中訪問:OledbCommandBuilder插入到語句C#中的語法錯誤?
tbl_Slip
SlipNo*,
EmpID,
ScaleID,
Month-Year,
RaiseBasic,
OtherDed,
Tax,
Arrears,
Notes,
所有字段是除月 - 年,並記錄哪些是文本整數類型。
現在C#部分: 這是我使用的代碼。 我試圖找出錯誤,所以做了一個與harcoded值的按鈕。
(該OleDbConnection的工作正常。我用它來在窗體上顯示的數據)
此功能我使用鏈接到tbl_Slip。
private void linkToSlip()
{
con.Open();
string sqlRecords = "Select * FROM tbl_Slip ORDER BY SlipNo";
SlipDA = new OleDbDataAdapter(sqlRecords, con);
SlipDA.Fill(SlipDS, "Slip");
// Primary key so DataTable.Rows.Find[] can be used
SlipDS.Tables["Slip"].PrimaryKey = new DataColumn[] { SlipDS.Tables["Slip"].Columns["SlipNo"] };
maxSlipRows = SlipDS.Tables["Slip"].Rows.Count;
dataGrid_Slip.DataSource = SlipDS;
dataGrid_Slip.DataMember = "Slip";
con.Close();
}
這是形式負載部分:
private void frm_Slip_Load(object sender, EventArgs e)
{
SlipDS = new DataSet();
createcon();
linkToSlip();
}
(createcon是我使用,使任意不等階數據庫的連接的功能)
這是按鈕的代碼:
private void button1_Click(object sender, EventArgs e)
{
OleDbCommandBuilder saveCB = new OleDbCommandBuilder(SlipDA);
DataRow dR = SlipDS.Tables["Slip"].NewRow();
dR[0] = Convert.ToInt32("2");
dR[1] = Convert.ToInt32("1");
dR[2] = Convert.ToInt32("1");
dR[3] = "January-2013";
dR[4] = Convert.ToInt32("15");
dR[5] = Convert.ToInt32("20");
dR[6] = Convert.ToInt32("2");
dR[7] = Convert.ToInt32("223");
dR[8] = "notes";
SlipDS.Tables["Slip"].Rows.Add(dR);
saveCB.DataAdapter.Update(SlipDS.Tables["Slip"]);
maxSlipRows++;
}
當我按下按鈕給出的錯誤是
INSERT INTO語句中的語法錯誤。
我找不出什麼問題。我檢查了重複,我檢查了數據是否保存在SlipDS.Tables [「Slip」](IT WAS)中。我想不出其他什麼。
出了什麼問題?
你知道'dR [0] = Convert.ToInt32(「2」);'與'dr [0] = 2;'相同,只使用更多的單詞和運行時間? –
是的,我做 但我嘗試了一切,可以使其功能! –