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";
    }

有什么想法吗?我只是想把数据输入到访问数据库中。错误出现在连接字符串"''"上

干杯

asp.net c# oledbconnection InvalidOperationException

您正在传递一个空的连接字符串

 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的意思是换行等。所以我们必须使用双反斜杠,这样编译器就不会将反斜杠视为转义序列。

相关文章:
  • 没有找到相关文章