为了账号安全,请及时绑定邮箱和手机立即绑定

以下内容是关于C# 数据库command类的试用问题

以下内容是关于C# 数据库command类的试用问题

白衣染霜花 2021-12-02 11:07:28
新手问题:有类sql public class sql{public void cmd(string sql){string strconn = "……省略……";SqlConnection conn = new SqlConnection(strconn);conn.Open();SqlCommand cmd = new SqlCommand(sql, conn);cmd.ExecuteNonQuery();conn.Close();}}调用类时:sql jj = new sql();string strsql1 = "…省略… ";SqlCommand cmd1 = new SqlCommand(strsql1, conn);cmd1 = jj.cmd(strsql1);提示 void 无法转化为System.Data.SqlClient.SqlCommand怎么改呢?
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

public void cmd(string sql)
要么把这个方法改为有返回值的,比如成功返回0,失败返回1
cmd1 = jj.cmd(strsql1);
要么上边这句,调用的时候直接jj.cmd(strsql1);就可以了

查看完整回答
反对 回复 2021-12-06
?
翻阅古今

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)



查看完整回答
反对 回复 2021-12-06
?
UYOU

TA贡献1878条经验 获得超4个赞

你这里是你定义的方法的返回值出了问题。
你的方法定义时,无返回值,可是你在调用的时候却利用该方法给一个参数赋了值,所以就出现了问题
首先要改的就是你自己定义的cmd()方法,由于你在调用的时候,是将其赋给了一个SqlCommand类型的值,所以方法的返回值类型void 应该改为SqlCommand,即:
public SqlCommand cmd(String sql){}
这样改了只是把你的语法错误改掉了,但是解决不了问题:
你在类的方法中已经定义了COMMAND对象,并且执行了语句,所以在调用的时候只需要传一个SQL语句的参数就可以了,不用再创建COMMAND对象。
我是这样想的:
你可以不用改方法,也可以把方法的返回值类型改为int,这个数是ExcuteNonQuery()方法的返回值( 受影响的行数),主要用来看看有没有成功执行。
在调用的时候,把创建COMMAND对象的那句话去掉,直接调用方法,这样就OK了。


查看完整回答
反对 回复 2021-12-06
  • 3 回答
  • 0 关注
  • 283 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信