[英]Inserting DropDownList value to table
我有一個帶有兩個int列的數據庫表:GameID和GenreID,其中GameID是標識列。 我想使用ASP.NET和C#將我的DropDownList中的SelectedValue作為GenreID插入表中。 我在DropDownList中的所有ListItem看起來都像這樣:
<asp:ListItem Text="Action" Value="1"></asp:ListItem>
所以,這就是我想要做的。
將DropDownList值轉換為int:
int GenreID = Int32.Parse(DropDownGenre.SelectedValue);
SQL命令:
SqlCommand cmd2 = new SqlCommand("INSERT into Games_Genres values(@GenreID)");
並將該值添加到參數中:
cmd2.Parameters.AddWithValue("@GenreID", SqlDbType.Int).Value = GenreID;
這給了我以下錯誤:
字符串或二進制數據將被截斷。 該語句已終止。
我知道這個錯誤通常(總是?)意味着該字段的大小不足以容納我要插入的數據。 但是,看到我將值轉換為int,我不明白為什么這是一個問題?
你能試一下嗎
cmd2.Parameters.Add("@GenreID", SqlDbType.Int); cmd2.Parameters["@GenreID"].Value = GenreID;
代替?
你能試一下嗎
SqlCommand cmd2 =
new SqlCommand("INSERT into Games_Genres (GenreID) values(@GenreID)");
GenreID是否也設置為標識列?
同樣,在為查詢創建參數時,您無需指定類型,因為T-SQL隱式轉換類型。 它應該看起來像:
using (SqlCommand cmd2 = new SqlCommand("INSERT into Games_Genres (GenreID) values (@GenreID)"))
{
cmd2.Parameters.AddWithValue("@GenreID", GenreID);
cmd2.ExecuteScalar();
}
我還不能添加注釋,因此,您的架構圖像將GameId顯示為其一個關鍵字段,並且您未設置它,如果您對它添加了參數,也可能會創建一個存儲過程而不是文本查詢(如果僅用於測試)目的為何不嘗試:
var sqlCommand = new SqlCommand(String.Format("INSERT into Games_Genres values({0})", genreId));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.