簡體   English   中英

將 varchar 值“Batsman”轉換為數據類型 int 時轉換失敗

[英]Conversion failed when converting the varchar value 'Batsman' to data type int

這是我的 C# 代碼 - 我正在運行查詢

INSERT INTO PM
VALUES ('Ali', '6777777', '3', 'Batsman', 'Fine Player', 'njhuh8obj',     'Lahore');

它在數據庫中運行良好,但不是這樣。

protected void btnAdd_Click(object sender, EventArgs e)//button that add players
{
    // for picture to be uploaded
    string path = "~/Admin/Players"  FileUploadPicture.FileName;
    FileUploadPicture.SaveAs(Server.MapPath(path));

    SqlCommand cmd = new SqlCommand("INSERT INTO PM VALUES ( '" + TxtPlayerName.Text +    "','"+TxtPlayerType.Text + "','" + TxtPlayerBasePrice.Text + "','" + TxtPlayerRecord.Text + "',
'" + ddlCat.SelectedItem.Value + "','" + path + "','" + TxtPlayerAddress.Text + "')", con);//Query of my C# page

    // open connection with database
    con.Open();

    // Command for running query
    cmd.ExecuteNonQuery();
    con.Close();

    // message shown after player is added
    Response.Write("<script>alert('**Player Added**')</script>");
}

似乎我的 C# 頁面的代碼不在數據庫中,但我不確定。

所以請幫我解決這個問題...

看起來您的數據庫表的第二列接受了 integer 值,但您傳遞的是字符串( TxtPlayerType.Text )。 如果要插入僅包含 select 列的值的條目,則必須按如下方式指定列名:

INSERT INTO table_name (Column1, Column2, ...) VALUES (Value1, Value2, ...)

如果未指定列名,您必須按照它們在數據庫表中出現的順序傳遞值。

插入語句應遵循以下格式

Insert into <TableName>(Column1,Column2) Values (Value1,Value2)

最好在語句中定義列名,因為它可以確保列的順序,並且將來如果添加或刪除新列,則無需更改代碼

暫無
暫無

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

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