Я получаю System.Data.OleDb.OleDbException: «Не задано значение для одного или нескольких обязательных параметров».но я даю ему значение, как вы можете видеть в моем коде:
private void PopWeapSel(string[] read)
{
string[] weapID = read;
string weapDam = "";
string weapPat = "";
string weapHeat = "";
string weapName = "";
OleDbConnection dbConn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=BHShooterProjectDB.accdb");
string sql = "SELECT ItemWeaponType.WeaponID, ItemWeaponType.WeaponDamage, ItemWeaponType.WeaponPattern, ItemWeaponType.WeaponHeatValue, ItemWeaponType.WeaponCoolRate, ItemWeaponType.WeaponName FROM ItemWeaponType WHERE ItemWeaponTypeWeaponID = @PU;";
OleDbCommand cmd = new OleDbCommand(sql, dbConn);
foreach (string WeapID in weapID)
{
if (WeapID == "")
{
return;
}
cmd.Parameters.AddWithValue("@PU", WeapID); ///Problem Line
dbConn.Open();
OleDbDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
weapDam = reader[1].ToString();
weapPat = reader[2].ToString();
weapHeat = reader[3].ToString();
weapName = reader[4].ToString();
}
dbConn.Close();
this.DGV_WS.Rows.Add(weapDam, weapPat, weapHeat, weapName);
}
}
Когда я смотрю на местных жителей в отладке.WeapID имеет значение «1», как и должно быть.Я что-то пропустил с точки зрения синтаксиса?
Спасибо!