ADO.Net c#0x80131904必须声明标量变量/函数
本文关键字:标量 变量 函数 声明 Net c#0x80131904 ADO | 更新日期: 2023-09-27 18:29:24
我正试图通过SQL连接使用一个函数,我在应用程序的其他地方都做过(只是在这里它给出了错误,而不是应用程序的其余部分)。当我搜索错误代码的含义时,我发现的回复说,当无法连接到SQL server时,这是一个错误?但它并没有给出解决方案。
这是我的c#代码
SqlConnection connection = Database.GetConnection();
DataTable dt = new DataTable("CRC");
SqlCommand cmd = new SqlCommand("SELECT dbo.CalcRentalCharge(@RentalStartDateTime,@RentalEndDateTime,@CarTypeID)", connection);
try
{
connection.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@RentalStartDateTimetext", SqlDbType.DateTime).Value = RentalStartDateTimeBox.Text;
cmd.Parameters.Add("@RentalEndDateTimetext", SqlDbType.DateTime).Value = RentalEndDateTimeBox.Text;
cmd.Parameters.Add("@CarTypeIDtext", SqlDbType.Int).Value = CarTypeID.Text;
connection.Open();
Decimal rentalChange = (Decimal)cmd.ExecuteScalar();
connection.Close();
MessageBox.Show("The rental change is: " + rentalChange.ToString());
if (dr.HasRows)
{
dt.Load(dr);
dataGridView1.DataSource = dt;
}
}
connection.Close();
你能帮我把这个功能发挥作用吗?
cmd.ExecuteReader()
。它给出了错误,将参数添加到命令中,然后cmd.execureReader()
您的变量名中存在复制/粘贴错误:
在线
cmd.Parameters.Add("@RentalStartDateTimetext",SqlDbType.DateTime).Value=RentalStartDateTimeBox.Text;
字符串
租金起始日期时间文本
需要
租金起始日期时间
除此之外,因为它将作为您的下一个错误弹出:您打开和关闭连接是错误的。对于连接也使用using块,并在块开始后直接打开它。您不需要手动关闭它,using块将为您完成此操作。