gpt4 book ai didi

c# - 尝试从数据库中检索数据时出现错误 "InvalidOperationException was unhandled"

转载 作者:行者123 更新时间:2023-11-30 17:31:05 26 4
gpt4 key购买 nike

我有一个名为 Form1 的表单:

有一个 ComboBox 和一个 TextBox,当我从 ComboBox 中选择 US$ 时,它必须从数据库中检索数据并显示TextBox 中的 150。

这是我的表单代码:

ComboBox;

namespace PCJ_System
{
public partial class Form1 : Form
{
SqlConnection conn;
SqlCommand cmd;
SqlDataReader dr;
public Form1()
{
InitializeComponent();
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string str = "server = DESKTOP-LKEG8FM\\SQLEXPRESS;initial catalog= PCJ_DB ; Integrated Security=True;";
SqlConnection conn = new SqlConnection(str);
conn.Open();
conn = new SqlConnection(str);
string GetData = "Select [FC_Rate] from Forcur where FC_TYPE ='" + comboBox1.Text + "' ";
cmd = new SqlCommand(GetData, conn);
var returnValue = cmd.ExecuteScalar();

textBox1.Text = returnValue.ToString();
conn.Close();
}

}
}

我的数据库表 Forcur:

ID |FC_TYPE |FC_RATE|
1 US$ 150
2 UK# 210

我的代码有什么问题?

最佳答案

这可能不是您要找的确切答案,但您需要注意以下几点:

1) 将数据库连接字符串分配给SqlConnection 对象并打开连接。

2) 由于您正在为文本框分配一个值,因此您需要使用 ExecuteScalar 而不是 ExecuteReader

一旦你解决了这个问题,你应该会得到想要的结果。

例子:

conn=new SqlConnection(connectionStringHere);
conn.Open();
string GetData = "Select [FC_Rate] from Forcur where FC_TYPE ='" + comboBox1.Text + "' ";
cmd = new SqlCommand(GetData, conn);
var returnValue = cmd.ExecuteScalar();

textBox1.Text = returnValue.ToString();
conn.close();

Note: You still have SQL injection attack open in your SQL query. Try using varables instead to stop that.

关于c# - 尝试从数据库中检索数据时出现错误 "InvalidOperationException was unhandled",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48489818/

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