簡體   English   中英

錯誤:不允許從數據類型varchar到varbinary(max)的隱式轉換。 使用CONVERT函數運行此查詢

[英]Error : Implicit conversion from data type varchar to varbinary(max) is not allowed. Use the CONVERT function to run this query

這是我上傳圖像的程序:

 protected void Button1_Click(object sender, EventArgs e)
{
    string car_model = TextBox1.Text;
    string car_brand = TextBox2.Text;
    string car_type = TextBox3.Text;
    int dist_travel = int.Parse(TextBox4.Text);
    int mileage = int.Parse(TextBox5.Text);
    string car_condition = TextBox6.Text;
    string car_owner = TextBox7.Text;
    string car_color = TextBox8.Text;
    int car_price = int.Parse(TextBox9.Text);

    if (FileUpload1.HasFile)
    {
        byte[] fdata = FileUpload1.FileBytes;

        string con_string = @"data source=(local);initial catalog=Automobile;integrated security=true";
        SqlConnection con = new SqlConnection();
        con.ConnectionString = con_string;
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText = "Insert into vehicle_details values ('" + car_model + "','" + car_type + "','" + dist_travel + "','" + mileage + "','" + car_condition + "','" + car_owner + "','" + car_color + "','" + fdata + "','" + car_price + "')";
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }
}

然后會引發以下錯誤:

不允許從數據類型varchar隱式轉換為varbinary(max) 使用CONVERT函數運行此查詢。

數據庫的結構為car_model varchar,car_type varchar,dist_travel int,mileage int,car_condition varchar,car_owner varchar,car_color varchar,fdata varbinary(MAX),car_price varchar

您可能已經將fdata聲明為byte [],但是讀取的代碼部分

... + "','" + fdata + "','" + ....

將其強制為字符串,以便可以成為命令文本的一部分

您將必須參數化查詢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM