日期:2014-05-17  浏览次数:20586 次

有个棘手的数据库问题,请教大家了!!!
下面是一个函数,在执行时,总出现这句错误: int count=cmd.ExecuteNonQuery();{"从数据类型 nvarchar 转换为 int 时出错。"} 这是为啥?并且数据都不显示出来???请大家帮帮忙。。。谢了
private void btn查询_Click(object sender, EventArgs e)
  {
  string leixing=radioButton1.Text;
  int planeNO=Convert.ToInt32(textBox1.Text);
  DateTime ticketDate=Convert.ToDateTime(dateTimePicker1.Value.ToString());
  string chufaCity=textBox2.Text;
  string arrivalCity=textBox3.Text;
  string hangkonggongsi=comboBox1.SelectedItem.ToString();
  string cangwei=comboBox2.SelectedItem.ToString();
  string sql ="EXECUTE 查询过程 @leixing=leixing,@planeNO=planeNO, @ticketDate=ticketDate,@chufaCity=chufaCity,@arrivalCity=arrivalCity,@hangkonggongsi=hangkonggongsi,@cangwei=cangwei";
  SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=飞机订票数据库;Integrated Security=True");
  conn.Open();
  SqlCommand cmd = new SqlCommand();
  cmd.Connection = conn;
  cmd.CommandText=sql;
  int count=cmd.ExecuteNonQuery();
  if (count>0)
  {
  查询结果 jg = new 查询结果();
  jg.Show();
  }
  else
  MessageBox.Show("没有所查航班信息!!!");
  }

------解决方案--------------------
把你的SQL语句贴出来,是你某个地方需要用INT,但是你传的是字符型导致的,而你贴出来的只是调用,对调试作用不大。
------解决方案--------------------
从数据类型 nvarchar 转换为 int 时出错

应该使用int参数的时候,你传入的字符是非数字的字符...
------解决方案--------------------
先把你的存储过程贴出来吧,看看是不是你给的参数类型与指定的不符。而且你的存储过程执行的应该是查询语句,但却使用了ExecuteNonQuery(); 方法,该方法是执行增删改操作的。