【发布时间】:2020-12-17 21:23:45
【问题描述】:
我找不到错误,我已经为这个问题工作了几个星期,我希望你能帮助我解决它。
这是我的访问数据库的类
namespace Monsterafood
{
public class clsDataAccess : ClsWebConfig
{
public static DataTable ExecuteSelectCommand(DbCommand command)
{
DataTable table;
try
{
command.Connection.Open();
DbDataReader reader = command.ExecuteReader();
table = new DataTable();
table.Load(reader);
reader.Close();
}
catch (Exception)
{
//clsUtilities.LogError(ex);
throw;
}
finally
{
command.Connection.Close();
}
return table;
}
public static DbCommand CreateCommand()
{
string dataProviderName = ClsWebConfig.DbProviderName;
string connectionString = ClsWebConfig.DbConnectionString;
DbProviderFactory factory = DbProviderFactories.GetFactory(dataProviderName);
DbConnection conn = factory.CreateConnection();
conn.ConnectionString = connectionString;
DbCommand comm = conn.CreateCommand();
return comm;
}
public static int ExecuteNonQuery(DbCommand command)
{
int affectedRows = -1;
try
{
command.Connection.Open();
affectedRows = command.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
command.Connection.Close();
}
return affectedRows;
}
public static string ExecuteScalar(DbCommand command)
{
string value = "";
try
{
command.Connection.Open();
value = command.ExecuteScalar().ToString();
}
catch (Exception)
{
throw;
}
finally
{
command.Connection.Close();
}
return value;
}
}
}
这是调用类的方法
public static string inserta(string id_add, string nombre, string precio)
{
DbCommand comm = clsDataAccess.CreateCommand();
comm.CommandText= "INSERT INTO temporalcrepa(id_add, nombre, precio) VALUES(" + id_add + ", '" + nombre + "', " + precio + "); ";
string x= clsDataAccess.ExecuteScalar(comm);
return x;
}
我正在使用 c# 和 javascript,我的数据库是 mysql。 非常感谢您帮我解决问题
【问题讨论】:
-
你的代码容易受到sql注入的影响,请检查prepared stemenst with parameters
-
如果您尝试解决“无法将类型为 'MySql.Data.MySqlClient.MySqlException' 的对象转换为类型 'System.IConvertible'.'”错误,请粘贴异常详细信息完整的调用堆栈进入您的问题:idownvotedbecau.se/noexceptiondetails