无法将类型为"MySql.Data.MySqlClient.MySqlException"的对象转换为类型"System.IConvertible"。



我找不到错误,我已经处理这个问题好几个星期了,我希望你能帮我解决它。

这是我的类,它访问数据库

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。非常感谢您帮助我解决问题

您正在执行一个调用executeScalar((的插入语句,您希望调用ExecuteNonQuery((而不是Scalar。

最新更新