求助大神:Winform程序为何不执行这串代码直接下一步了

nmyz7733 2020-05-25 10:51:19
我写了个程序,希望判断备份成功执行下一步,备份失败不执行下一步,备份成功时执行else里面的语句,但是不执行 这一段,string selectsql1 = "exec PRO_UPDATE_CYRQ '" + zyh.Text + "','" + CYRQ.Text + "','" + loginid + "','" + localaddr.ToString() + "'";
SqlCommand cmd1 = new SqlCommand(selectsql1, conn);//SqlCommand对象允许你指定在数据库上执行的操作的类型。
cmd1.CommandType = CommandType.Text;
int ret1 = cmd.ExecuteNonQuery();//受影响的行数(总数)
直接显示执行成功
完整代码如下
private void button1_Click(object sender, EventArgs e)
{
//数据库连接字符串(引号中的字符串为之前复制的那段字符)
//Data source=服务器名,Initial catalog=数据库名,User Id=sqlserver连接名,
//Password=数据库连接密码,integrated Security=True
string str = @"Data Source=.;Initial catalog=.;User Id=.;Password=.;integrated Security=False";
SqlConnection conn = new SqlConnection(str);
conn.Open();
string HostName = Dns.GetHostName();
IPHostEntry localhost = Dns.GetHostByName(HostName);
IPAddress localaddr = localhost.AddressList[0];
string selectsql = "SELECT * FROM ZY_BH0 WHERE ZYH = '" + zyh.Text + "';";
SqlCommand cmd = new SqlCommand(selectsql, conn);//SqlCommand对象允许你指定在数据库上执行的操作的类型。
cmd.CommandType = CommandType.Text;
int ret = cmd.ExecuteNonQuery();//受影响的行数(总数)
if (ret == 0)
{
MessageBox.Show("备份失败,操作停止,请联系管理员");
return;
}
else
{
string selectsql1 = "exec PRO_UPDATE_CYRQ '" + zyh.Text + "','" + CYRQ.Text + "','" + loginid + "','" + localaddr.ToString() + "'";
SqlCommand cmd1 = new SqlCommand(selectsql1, conn);//SqlCommand对象允许你指定在数据库上执行的操作的类型。
cmd1.CommandType = CommandType.Text;
int ret1 = cmd.ExecuteNonQuery();//受影响的行数(总数)
if (ret1 == 0)
{
MessageBox.Show("修改失败,请联系管理员");
return;
}
else
{
MessageBox.Show("修改成功,出院日期修改为" + CYRQ.Text + "");
}
conn.Close();
}
conn.Close();

}


我想执行里面这个存储过程
...全文
348 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
libolei 2020-06-17
  • 打赏
  • 举报
回复
存储过程那里 cmd改成cmd1
royallii 2020-05-27
  • 打赏
  • 举报
回复
加断点调试吧,一步一步的来
wilson1966 2020-05-27
  • 打赏
  • 举报
回复
设断点,逐步跑就知道原因了
  • 打赏
  • 举报
回复
数据库上执行的操作的类型。
cmd1.CommandType = CommandType.Text;
int ret1 = cmd.ExecuteNonQuery();//受影响的行数(总数)
nmyz7733 2020-05-25
  • 打赏
  • 举报
回复
求助大神,帮忙看看问题在哪
nmyz7733 2020-05-25
  • 打赏
  • 举报
回复
引用 2 楼 ZSZhen 的回复:
执行数据库操作(例如cmd.ExecuteNonQuery())返回值不是只有0和大于0,还有-1,如果sql语句有错误,是返回-1的,也是备份失败的,你可以调试看一下返回值,看看是不是sql语句有问题。


我调试了下,返回的是1,但还是不执行那串代码
ZSZhen 2020-05-25
  • 打赏
  • 举报
回复
执行数据库操作(例如cmd.ExecuteNonQuery())返回值不是只有0和大于0,还有-1,如果sql语句有错误,是返回-1的,也是备份失败的,你可以调试看一下返回值,看看是不是sql语句有问题。

111,112

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧