我正在尝试使文本框中的文本成为SQL命令,然后使用查询结果填充datagridview

时间:2019-03-31 01:09:37

标签: c# ado.net

当我添加数据表类以填充datagridview时,Daily_Prices类未显示为一个类。我希望文本框成为SQL命令,然后用查询结果填充datagridview。添加DataTable类的代码时,我无法让Daily_Prices类保留为数据层名称空间下的类

这是按钮单击事件的代码,用于触发命令箱文本到SQL命令并使用查询结果填充datagridview。它说名称空间Daily_Prices中没有类DataLayer。但是,当您查看我的DataLayer名称空间时,会有一个Daily_Prices类。

private void buttonGo_Click(object sender, EventArgs e)
{
    try
    {
        // Takes the commandBox text and sends it to SQL Server
        DataLayer.Commands c = new DataLayer.Commands();
        DataLayer.Daily_Prices dp = c.Command(string.Format(commandBox.Text));

        // Populates the datagridview                
        DataTable daily = DataLayer.Commands.GetDaily("Daily_Price");
        dataGridViewGetDaily.DataSource = daily;
     }
     catch { }
 }

DataLayer的命名空间如下

namespace DataLayer
{
    public class Commands
    {
        public Daily_Prices Command(string commandBox)
        {
            Daily_Prices dp = new Daily_Prices();

            using (SqlConnection connect = DB.GetSqlConnection())
            {
                 using (SqlCommand cmd = connect.CreateCommand())
                 {
                     cmd.CommandText = @"{0}";
                     cmd.CommandText = string.Format(cmd.CommandText, commandBox.ToString());

                     SqlDataReader reader = cmd.ExecuteReader();

                     if (reader.Read())
                     {
                         dp.Load(reader);
                     }

                     return dp;
                 }
            }
        }

        public static DataTable GetDaily(string commandBox)
        {
            DataTable table = new DataTable("Daily_Price");
            SqlDataAdapter da = null;

            using (SqlConnection conn = DB.GetSqlConnection())
            {
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = @"{0}";
                cmd.CommandText = string.Format(cmd.CommandText, commandBox.ToString());

                da = new SqlDataAdapter(cmd);
                da.Fill(table);
            }

            return table;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

在您的Daily_Prices命名空间中找不到DataLayer类的任何定义!
也许您误解了Daily_Prices dp = new Daily_Prices();行(这只是一个对象定义)?

我在您的DataLayer命名空间中看到的唯一类定义是Commands