3 回答
TA贡献1842条经验 获得超21个赞
public void cmd(string sql)
要么把这个方法改为有返回值的,比如成功返回0,失败返回1
cmd1 = jj.cmd(strsql1);
要么上边这句,调用的时候直接jj.cmd(strsql1);就可以了
TA贡献1780条经验 获得超5个赞
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}
调用时执行类名.ExecuteSql(sqlstring)
TA贡献1878条经验 获得超4个赞
你这里是你定义的方法的返回值出了问题。
你的方法定义时,无返回值,可是你在调用的时候却利用该方法给一个参数赋了值,所以就出现了问题
首先要改的就是你自己定义的cmd()方法,由于你在调用的时候,是将其赋给了一个SqlCommand类型的值,所以方法的返回值类型void 应该改为SqlCommand,即:
public SqlCommand cmd(String sql){}
这样改了只是把你的语法错误改掉了,但是解决不了问题:
你在类的方法中已经定义了COMMAND对象,并且执行了语句,所以在调用的时候只需要传一个SQL语句的参数就可以了,不用再创建COMMAND对象。
我是这样想的:
你可以不用改方法,也可以把方法的返回值类型改为int,这个数是ExcuteNonQuery()方法的返回值( 受影响的行数),主要用来看看有没有成功执行。
在调用的时候,把创建COMMAND对象的那句话去掉,直接调用方法,这样就OK了。
添加回答
举报