在以下示例中,我必须输入所有详细信息以将数据保存在数据库中。是否可以将一些文本框保留为空,然后使用更新命令参数填写其余数据?例如插入ID,AgeGroup,Gender,保留照片和Resume为空并将其保存在Access数据库中?如果你不介意,有人可以提供一个例子。我给你的描述我不知道如何用技术术语来描述?在此先感谢您的帮助。
private void btnInsert_Click(object sender, EventArgs e)
{
OleDbCommand cmd = new OleDbCommand(@"INSERT INTO Table1
(ID, AgeGroup, Gender, CriminalOffence, photo, CV)
VALUES(@ID, @AgeGroup, @Gender, @CriminalOffence, @photo, @Resume)", con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@ID",textBox1.Text);
cmd.Parameters.AddWithValue("@AgeGroup", comboBox1.Text);
cmd.Parameters.AddWithValue("@Gender", comboBox2.Text);
cmd.Parameters.AddWithValue("@CriminalOffence", OleDbType.WChar).Value = str;
if (pictureBox1.Image != null)
{
//using MemoryStream:
ms = new MemoryStream();
pictureBox1.Image.Save(ms, ImageFormat.Jpeg);
byte[] photo_aray = new byte[ms.Length];
ms.Position = 0;
ms.Read(photo_aray, 0, photo_aray.Length);
cmd.Parameters.AddWithValue("@photo", photo_aray);
}
cmd.Parameters.AddWithValue("@Resume", richTextBox1.Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
VS 2010 C# Access 2003
答案 0 :(得分:1)
在提交前添加一个检查声明:
例如:
cmd.Parameters.AddWithValue("@ID", string.IsNullOrEmpty(textBox1.Text.Trim())? DBNull.Value:textBox1.Text.Trim());
答案 1 :(得分:0)
您需要传递值来处理错误“没有给出一个或多个必需参数的值”。
它可能是DBNull或空字符串。
答案 2 :(得分:0)
您是否已将allow null
属性设置为true
,以便您稍后要在数据库中更新这些列?如果不这样做,你的当前代码将正常工作,我猜..
string command = stirng.Format("INSERT INTO Table1(ID, AgeGroup) VALUES ({0},{1})",TextBox1.Text,ComboBox1.Text)
OleDbCommand cmd = new OleDbCommand(command, con)