asp.net c# oledbconnection InvalidOperationException
本文关键字:InvalidOperationException oledbconnection net asp | 更新日期: 2023-09-27 18:12:45
错误:未识别的转义序列
代码:
string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|'DriveBuy.accdb";
OleDbConnection con = new OleDbConnection(ConnectionString);
if (FileUpload1.HasFile)
{
String sPath = MapPath(FileUpload1.FileName);
FileUpload1.PostedFile.SaveAs(sPath);
con.Open();
string mysql;
mysql = "INSERT INTO Cars(Make,Model,Price,Picture) VALUES (?,?,?,?)";
OleDbCommand cmd = new OleDbCommand(mysql, con);
cmd.Parameters.AddWithValue("@p1", tbMake.Text);
cmd.Parameters.AddWithValue("@p2", tbModel.Text);
cmd.Parameters.AddWithValue("@p3", Convert.ToDecimal(tbPrice.Text));
cmd.Parameters.AddWithValue("@p4", FileUpload1.FileName);
cmd.ExecuteNonQuery();
con.Close();
}
else
{
lblError.Text = "Image was not uploaded";
}
有什么想法吗?我只是想把数据输入到访问数据库中。错误出现在连接字符串"''"上
干杯
您正在传递一个空的连接字符串
string ConnectionString = "";
为了连接到数据库,您需要指定一个有效的连接字符串。这个网站可能会有所帮助。
编辑
数据目录应该是您访问数据库的目录
// fix your data source to the correct directory
string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:''DriveBuy.accdb";
EDIT2
很抱歉,正如D Stanley的评论所指出的,你的参数实际上是正确的,谢谢。
代替:
string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|'DriveBuy.accdb";
这样做:
string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|''DriveBuy.accdb";
或者这个:
string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|'DriveBuy.accdb";
出现错误是因为C#中的"''"是用于字符串中特殊含义的转义序列。例如,''n的意思是换行等。所以我们必须使用双反斜杠,这样编译器就不会将反斜杠视为转义序列。