private void btnAdd_Click(object sender, EventArgs e)
{
//建立添加查询字符串
String insertSQL = "insert into film(FilmName,Date,Comment) values (@FilmName,@Date,@Comment)"; //建立添加命令
myCmd = new OleDbCommand(insertSQL,myConnection); //建立参数用于存放电影名
myCmd.Parameters.Add(new OleDbParameter("@FilmName",OleDbType.Char,10));
myCmd.Parameters["@FilmName"].Value = txtFilmname.Text; //建立参数用于存放日期
myCmd.Parameters.Add(new OleDbParameter("@Date",OleDbType.DBDate,8));
myCmd.Parameters["@Date"].Value = txtDate.Text; //建立参数用于存放评论
myCmd.Parameters.Add(new OleDbParameter("@Comment",OleDbType.Char,40));
myCmd.Parameters["@Comment"].Value=richTextBoxComment.Text;
//打开连接
myCmd.Connection.Open(); try
{
//执行查询
myCmd.ExecuteNonQuery();
MessageBox.Show("添加成功");
}
catch
{
MessageBox.Show("添加发生错误检查参数是否合法");
myCmd.Connection.Close();
return;
}
//关闭数据库连接
myCmd.Connection.Close(); //以下清空显示
txtFilmname.Text="";
txtDate.Text="";
richTextBoxComment.Text = "";
OpenDb();
}
我的数据库用Access,但点击"添加"按钮时显示对话框"添加发生错误检查参数是否合法",怎么改,谢谢!
{
//建立添加查询字符串
String insertSQL = "insert into film(FilmName,Date,Comment) values (@FilmName,@Date,@Comment)"; //建立添加命令
myCmd = new OleDbCommand(insertSQL,myConnection); //建立参数用于存放电影名
myCmd.Parameters.Add(new OleDbParameter("@FilmName",OleDbType.Char,10));
myCmd.Parameters["@FilmName"].Value = txtFilmname.Text; //建立参数用于存放日期
myCmd.Parameters.Add(new OleDbParameter("@Date",OleDbType.DBDate,8));
myCmd.Parameters["@Date"].Value = txtDate.Text; //建立参数用于存放评论
myCmd.Parameters.Add(new OleDbParameter("@Comment",OleDbType.Char,40));
myCmd.Parameters["@Comment"].Value=richTextBoxComment.Text;
//打开连接
myCmd.Connection.Open(); try
{
//执行查询
myCmd.ExecuteNonQuery();
MessageBox.Show("添加成功");
}
catch
{
MessageBox.Show("添加发生错误检查参数是否合法");
myCmd.Connection.Close();
return;
}
//关闭数据库连接
myCmd.Connection.Close(); //以下清空显示
txtFilmname.Text="";
txtDate.Text="";
richTextBoxComment.Text = "";
OpenDb();
}
我的数据库用Access,但点击"添加"按钮时显示对话框"添加发生错误检查参数是否合法",怎么改,谢谢!
1、类型对应错误,检查所设置的类型和大小是否和数据库对应
2、跟踪传入内容,看是否合法单纯从写法上简单的看了一下,应该没有问题
myCmd.Parameters.Add(new OleDbParameter("@Date",OleDbType.DBDate,8));
myCmd.Parameters["@Date"].Value = txtDate.Text;這句的類型不對吧!像這種自己設個斷點調試一下就知道了
===============================================
myCmd.Parameters["@Date"].Value = Convert.ToDateTime(txtDate.Text);
{
MessageBox.Show("添加发生错误检查参数是否合法"+ex.Message);
myCmd.Connection.Close();
return;
}
//关闭数据库连接
myCmd.Connection.Close(); //以下清空显示
txtFilmname.Text="";
txtDate.Text="";
richTextBoxComment.Text = "";
OpenDb();
}进入调试跟踪 显示异常