有个棘手的数据库问题,请教大家了!!!
下面是一个函数,在执行时,总出现这句错误: 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(); 方法,该方法是执行增删改操作的。