1

错误:无法识别的转义序列。

代码:

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

有任何想法吗?我只是想将数据输入到访问数据库中。错误出现在连接字符串“\”上

干杯

4

2 回答 2

1

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

 string ConnectionString = "";

为了连接到您的数据库,您需要指定一个有效的连接字符串。这个网站可能会有所帮助。

编辑

数据目录应该是您访问数据库的目录

// fix your data source to the correct directory
string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\DriveBuy.accdb";

编辑2

抱歉,您的参数实际上是正确的,正如 D Stanley 评论中指出的那样,谢谢。

于 2013-05-09T13:39:41.453 回答
0

代替:

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 表示换行符等。所以我们必须使用双反斜杠,以便编译器不会将反斜杠视为转义序列。

于 2013-05-09T14:29:15.763 回答