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

标签 c# sql-server

我有一个名为 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/

相关文章:

c# - 如何在 asp.net 中设置控件属性

c# - ptr[i] 和 *(ptr + i) 有什么区别?

c# - ASP.NET MVC 绑定(bind)到字典

c# - Entity Framework 6 SaveChanges() 覆盖不一致地检测更改

c# - 如何使用 Parallel.For(..) 在主线程上填充 List<T>

sql-server - 仅转置 SQL Server 中的几列

sql-server - SQL Server SET FMTONLY 已弃用。你如何获得多个结果集的结构?

sql-server - 获取自定义时间段的第一个或最后一个值

Python - Pyodbc 连接错误

sql-server - 全文搜索适合搜索人名吗?