dataReader reader = cmd.executereader() 不起作用

本文关键字:不起作用 executereader cmd reader dataReader | 更新日期: 2023-09-27 18:35:11

我陷入了简单的数据读取器问题。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.Sql;
public void proName(string str)
        {
            SqlDataReader reader;
             using (SqlConnection sqlcon = new SqlConnection(constr))
            {
               string proId = textBox3.Text;
               SqlCommand sqlcmd = new SqlCommand("SELECT proName FROM products where proId = proId;", sqlcon);
               sqlcmd.CommandType = CommandType.TableDirect;
               reader = cmd.executereader();

            }
        }

它在cmd/命令下显示错误(名称cmd在当前上下文中不会退出).....

我尝试在连接前后创建对象,但不起作用。

dataReader reader = cmd.executereader() 不起作用

命令类型不应为 TableDirect。

sqlcmd.CommandType = CommandType.Text; // which is default
reader = sqlcmd.executereader();

变量名称sqlcmd,您要求executereader()函数cmd

sqlcmd.CommandType = CommandType.TableDirect;
reader = cmd.executereader();

应该是

sqlcmd.CommandType = CommandType.TableDirect;
reader = sqlcmd.executereader();

还要考虑CharithJ的回答,正如他所说:

命令类型不应为 TableDirect。

下面应该可以工作。

using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Data.Sql;
        public void proName(string str)
        {
            SqlDataReader reader;
            using (SqlConnection sqlcon = new SqlConnection(constr))
            {
                string proId = textBox3.Text;
                sqlcon.Open();
                SqlCommand sqlcmd = new SqlCommand("SELECT proName FROM products where proId = proId;", sqlcon);
                sqlcmd.CommandType = CommandType.Text;
                reader = sqlcmd.ExecuteReader();
                if (reader.Read())
                {
                    Response.Write(reader[0].ToString());
                }
            }
        }