方法名称预期 C# SQL Server Visual Studio 2019 [重复]

Posted

技术标签:

【中文标题】方法名称预期 C# SQL Server Visual Studio 2019 [重复]【英文标题】:Method name expected C# SQL Server visual studio 2019 [duplicate] 【发布时间】:2020-12-05 17:33:29 【问题描述】:

我正在尝试从数据源读取数据,但在 ExecuteReader 方法中出现此错误, 当我尝试在某个标签中显示结果时。

我在idlabel.Text = myraeder("id"); myreader varibale 下收到错误

private void Searchbtn_Click(object sender, EventArgs e)

   SqlConnection con = new SqlConnection(dataConnectin);
   con.Open();

   string searchsql = "SELECT * from Table WHERE Name=" + searchtxt.Text + "";
   SqlCommand cmd = new SqlCommand(searchsql, con);

   SqlDataReader myraeder;
   myraeder = cmd.ExecuteReader();
   myraeder.Read();

   idlabel.Text = myraeder("id");

【问题讨论】:

你得到什么错误? 使用这个myraeder["id"].ToString(); 注意这里的sql注入可能性。 【参考方案1】:

有很多明显的错误。让我向您展示一种编写代码的更好方法。跟我来!

为变量提供正确的名称和大小写。 使用异步。 在 sql 查询中使用参数。 通过将资源包装在 using 中来释放资源。 在 sql 中用括号将名称括起来。
private async void SearchButton_Click(object sender, EventArgs e)

    using (var connection = new SqlConnection(connectionString))
    
        await connection.OpenAsync();

        string searchSql = "SELECT * from [Table] WHERE [Name]=@name";

        using (var command = new SqlCommand(searchSql, connection))
        
            command.Parameters.Add("name", SqlDbType.NVarChar).Value = searchTextBox.Text;

            using (var reader = await command.ExecuteReaderAsync())
            
                while (await reader.ReadAsync())
                
                    idLabel.Text = reader["id"].ToString();
                
            
        
    

【讨论】:

【参考方案2】:
    使用方括号代替圆括号。 将字段转换为字符串。
    idlabel.Text = myraeder["id"].ToString();

【讨论】:

【参考方案3】:

这样读取数据:

idlabel.Text = myraeder["id"].ToString();
con.Close();

并且在获得所需数据后不要忘记关闭连接。

【讨论】:

它是否对您有效并且您的问题已解决?

以上是关于方法名称预期 C# SQL Server Visual Studio 2019 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 C#(或任何其他方法)将 XML 转换为 SQL Server 表

SqlException:在 C# (VISUAL STUDIO) 和 sql server 中构建网站时出现无效的对象名称错误

C# SQL Server VIEW 查询

sqlserver服务器名称有斜杠(\)怎么输入到C#工具里不报错

C#与SQL Server建立连接出错

C# 中的 SQL Server Express 连接字符串错误