Ich versuche, die MySQL
Datenbank von einer c#
Anwendung abzufragen. Unten ist der Code, hier sind parameterized query
bin mitMySql.Data.MySqlClient.MySqlException trat in MySql.Data.dll auf
public static void ValidateName(MySqlConnection conn,List<Employee> EmpList, string Group)
{
string selectQuery = "Select Name from Employee where Group = @Group AND @Name in (FirstName, LastName);";
using (MySqlCommand cmd = new MySqlCommand(selectQuery, conn))
{
for (int i = 0; i < EmpList.Count; i++)
{
cmd.Parameters.Add("@Group", MySqlDbType.VarChar).Value = Group;
cmd.Parameters.Add("@Name", MySqlDbType.VarChar).Value = EmpList[i].Name;
var reader = cmd.ExecuteReader();
List<string> lineList = new List<string>();
while (reader.Read())
{
lineList.Add(reader.GetString(0));
}
if (lineList.Count <=0)
{
WriteValidationFailure(EmpList[i], "Failed");
}
}
}
Aber die obigen Code-Fehler in Zeile unterhalb wirft
cmd.Parameters.Add("@Group", MySqlDbType.VarChar).Value = Group;
Eine nicht behandelte Ausnahme des Typs ‚MySql.Data.MySqlClient.MySqlException sagen ' aufgetreten in MySql.Data.dll' @Gruppe wurde bereits definiert
Muss ich hinzufügen cmd.Prepare(); vor jedem cmd.Pramaters.value verbessert es die Leistung des Codes – xyz
Kannst du mir bitte vorschlagen, wenn die Verwendung von Prepare-Anweisungen die Leistung verbessert – xyz
@xyz: Hoffen, dass [dieser Thread] (http://StackOverflow.com/Questions/ 20972375/how-to-right-and-efficient-reuse-ein-vorbereiteter-statement-in-c-sharp-net-sql) kann es gut erklären –