0
我正在使用一個名爲Contact的表的Access數據庫。該表格包含這些字段 ContactID,姓氏,姓氏,配偶姓名,電話,電子郵件,婚禮日期,街道地址,郊區,城市,郵政編碼,國家和評論。 ContactID是一個自動編號,PK和WeddingDate是日期/時間。其餘的都是文本字段。OleDbException未處理C#訪問數據庫
我有一個簡單的表單,上面有4個文本框,用於存儲firstName,LastName,Phone和Email。這裏是我的代碼
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace project1
{
public partial class DataSource : Form
{
OleDbConnection connection=new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Wills\Projects\Windows\project1\project1\project1.accdb");
public DataSource()
{
InitializeComponent();
}
private void DataSource_Load(object sender, EventArgs e)
{
connection.Open();
}
private void btnSave_Click(object sender, EventArgs e)
{
string vsql = string.Format("INSERT INTO Contact values(@FirstName, @LastName, @Phone, @Email)", txtFirstName.Text, txtLastName.Text, txtPhone.Text, txtEmail.Text);
OleDbCommand vcom = new OleDbCommand(vsql, connection);
vcom.ExecuteNonQuery();
MessageBox.Show("Data store successfully");
vcom.Dispose();
}
private void btnExit_Click(object sender, EventArgs e)
{
connection.Close();
this.Close();
}
}
}
我得到錯誤行vcom.ExecuteNonQuery();說「OleDbException未處理沒有給出一個或多個必需的參數值」。
我試圖改變插入語句,但沒有運氣,並在論壇上看着其他例子,我無法獲得任何更改以使用我的解決方案。任何想法或幫助將不勝感激。
嗨@Jieqin不幸的是它仍然給我同樣的信息。還有什麼想法?感謝您的幫助,雖然 – WillNZ
你可以在'OleDbCommand vcom = new OleDbCommand(vsql,connection)'這一行放置一個斷點嗎?然後指向相應的「_____。Text」並查看它們的值?另外,請檢查您的數據庫結構/設計,以確認您在該表格中有**完全** 4列。 – Jieqin
我已經這樣做了,他們都有我在表格中顯示的文字,顯示爲值 – WillNZ