gpt4 book ai didi

c# - 从C#中的存储过程中获取位值

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:04 24 4
gpt4 key购买 nike

情况如下,我在SQL Server中有一个存储过程,它有几个输出参数,其中一个是位类型,我想要的是取那个参数的值,但是我有一个转换错误, InvalidCastException

这是我的代码:

public void exec()
{
String strConnString = "Server=.\\SQLEXPRESS;Database=recalls;Integrated Security=true";
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "findVinCamp";
int c = Int32.Parse(campaing.Text);
cmd.Parameters.Add("@camp", SqlDbType.Int).Value = c;
cmd.Parameters.Add("@vin", SqlDbType.VarChar, 100).Value = vin.Text;
cmd.Parameters.Add("@desc", SqlDbType.NVarChar, 255).Direction = ParameterDirection.Output;
cmd.Parameters.Add("@st", SqlDbType.VarChar, 50).Direction = ParameterDirection.Output;
cmd.Parameters.Add("@bit", SqlDbType.Bit).Direction = ParameterDirection.Output;
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
bit = (int)cmd.Parameters["@bit"].Value; //Exception Here
if (bit == 1)
{
desc.Text = cmd.Parameters["@desc"].Value.ToString();
stt.Text = cmd.Parameters["@st"].Value.ToString();
camp = cmd.Parameters["@camp"].Value.ToString();
if (stt.Text.Equals("APPLIED"))
{
stt.ForeColor = System.Drawing.Color.LawnGreen;
}
else
{
stt.ForeColor = System.Drawing.Color.Firebrick;
label3.Enabled = true;
newstatus.Enabled = true;
update.Enabled = true;
}
}
else
{
MessageBox.Show("Doesn't exits!");
}
}

我正在尝试将 bit 参数分配给一个 int 变量。任何问题都可以发表评论。

最佳答案

我将 (int) 更改为此,现在可以正常工作了:

Boolean lol = Convert.ToBoolean(cmd.Parameters["@bit"].Value);

关于c# - 从C#中的存储过程中获取位值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39431900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com