将生日数据添加到Access数据库有点麻烦。我已经尝试过运行代码而没有'生日'进入方式,然后它的工作。根据我的研究,'DBDate'也考虑了毫秒数,我试着将文本字段的输入保存为日期时间格式,但可惜的是,这也不起作用。将日期添加到Access数据库失败
下面是我正在使用的代码。
public partial class Records : System.Web.UI.Page
{
OleDbConnection con;
OleDbCommand cmd;
protected void Page_Load(object sender, EventArgs e)
{
// Trace.Warn("2310", "Beginning of life Page_Load");
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection();
[email protected]"Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=E:\Dropbox\Temporary\OOD Assignment\Employee Directory\AppData\Employee.accdb";
String empName;
String ebirth;
String job;
String location;
String pnumber;
String email;
OleDbCommand cmd = new OleDbCommand("INSERT into EmployeeRecords ([ename],[job],[location],[phonenumber],[email],[birth])Values(@empName,@job,@location,@pnumber,@email,@ebirth)");
cmd.Connection = conn;
conn.Open();
if(conn.State == ConnectionState.Open)
{
cmd.Parameters.Add("@empName", OleDbType.VarChar).Value = tbEName.Text;
cmd.Parameters.Add("@ebirth", OleDbType.DBDate).Value = tbBirthDate.Text;
cmd.Parameters.Add("@job", OleDbType.VarChar).Value = tbJobTitle.Text;
cmd.Parameters.Add("@location", OleDbType.VarChar).Value = tbOfficeLocation.Text;
cmd.Parameters.Add("@pnumber", OleDbType.Numeric).Value = tbPNumber.Text;
cmd.Parameters.Add("@email", OleDbType.VarChar).Value = tbEmail.Text;
try
{
cmd.ExecuteNonQuery();
Label1.Text = "Data Added";
conn.Close();
}
catch(OleDbException ex)
{
Label1.Text = "Exception" + ex;
conn.Close();
}
} else
{
Label1.Text = "Connection Failed!";
}
}
}
下面是我得到的错误:
ExceptionSystem.Data.OleDb.OleDbException(0x80040E07):数据类型不匹配 条件表达式中。在在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult 小时)在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(对象&(tagDBPARAMS dbParams,对象&的ExecuteReuslt) 的ExecuteReuslt)在 System.Data.OleDb.OleDbCommand.ExecuteCommand(的CommandBehavior 行为,在 System.Data.OleDb对象在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(的CommandBehavior 行为,字符串方法)&的ExecuteReuslt)。 OleDbCommand.ExecuteNonQuery() Records.btnSubmit_Click(对象发件人,EventArgs e)在 E:\收存箱\临时\ OOD指派\雇员 目录\ Records.aspx.cs:线54
“出生” 在字段类型Employee.accdb文件是日期/时间。
有什么办法将用户输入从文本字段转换为Access可以理解的格式?任何帮助将非常感激。
如果参数需要DateTime,然后将DateTime传递给它的值而不是字符串,那么应该在有效的日期时间内转换用户输入 – Steve