所以我希望创建一个很好的函数,以更好的方式查询MySQL命令。与此相关的东西:
public int mysql_query_scalar(string query, parameters)
{
mysql_Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = mysql_connection;
cmd.CommandText = query;
cmd.Prepare();
cmd.Parameters.AddWithValue(parameterfromstring, parameternumber);
mysql_Close();
return int.Parse(cmd.ExecuteScalar().ToString());
}
现在,我希望能够尽可能多地添加参数,然后开始构建参数。这怎么可能?如果是这样,请告诉我或给我一个片段。
我很高兴有人告诉我如何使用它。我是MySQL新手,我不是C#专家。
mysql_Open();和mysql_Close();是我自己做的功能。将它们称为mysql_connection.Open();和mysql_connection.Close();
答案 0 :(得分:0)
您可以使用扩展方法,如下所示:
public static class DbCommandExtensions
{
public static void AddInputParameters<T>(this IDbCommand cmd,
T parameters) where T : class
{
foreach (var prop in parameters.GetType().GetProperties())
{
object val = prop.GetValue(parameters, null);
var p = cmd.CreateParameter();
p.ParameterName = prop.Name;
p.Value = val ?? DBNull.Value;
cmd.Parameters.Add(p);
}
}
}
请致电如下:
cmd.AddInputParameters(new { a = textBox1.Text, b = TextBox2.Text.... });
答案 1 :(得分:0)
我会这样称呼这个方法:
List<SqlParameter> sList = new List<SqlParameter>();
sList.Add(new SqlParameter("@myValue", myValue));
sList.Add(new SqlParameter("@myValue2", myValue2));
mysql_query_scalar(myQuery, sList.ToArray());
我将使用using-directives
public static int mysql_query_scalar(string Command, SqlParameter[] parameters)
{
using (MySqlConnection myConnection = new MySqlConnection(ConnectionString))
{
myConnection.Open();
using (MySqlCommand myCommand = new MySqlCommand(Command, myConnection))
{
myCommand.Parameters.AddRange(parameters); // Add Parameters here
return (int)myCommand.ExecuteScalar();
}
}
}