运行时创建Datagridview

本文关键字:Datagridview 创建 运行时 | 更新日期: 2023-09-27 18:19:07

我已经忍无可忍了…

我正在从dateTimePicker中获取值,我正在执行基于dateTimePicker值的SQL查询。查询的结果应该在执行查询后显示在Datagridview上。

下面是我到目前为止编写的代码:
namespace App1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            DateTime varDate;
            varDate = dateTimePicker1.Value; 
              }

        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"Data Source=SUBASH-LAPTOP'COBRA;Initial Catalog=Test;Integrated Security=True");
            SqlCommand Command = con.CreateCommand();
            Command.CommandText = "Select * From orders where date_purchased <= @varDate ";
            con.Open();
            SqlDataReader reader = Command.ExecuteReader();
            DataSet ds = new DataSet();
            DataTable dt = ds.Tables.Add(); 
            DataGridView d1 = new DataGridView();
            this.Controls.Add(d1);
            while (reader.Read())
            {
                d1.DataSource = ds.Tables[0];
       }    
    }
}

我对c#相当缺乏经验,所以任何答案都是非常感谢的。

请帮助。

谢谢,

Subash

运行时创建Datagridview

使用以下代码:

private void button1_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(@"Data Source=SUBASH-LAPTOP'COBRA;Initial Catalog=Test;Integrated Security=True");
    SqlCommand Command = con.CreateCommand();
    SqlDataAdapter dp = new SqlDataAdapter("Select * From orders where date_purchased <= @varDate", con);
    dp.SelectCommand.Parameters.AddWithValue("@varDate", dateTimePicker1.Value);
    DataSet ds = new DataSet();
    dp.Fill(ds);
    DataGridView d1 = new DataGridView();
    d1.DataSource = ds;
    d1.DataMember = ds.Tables[0].TableName;
    this.Controls.Add(d1);
}    

查看下面的链接:

如何:将数据绑定到Windows窗体DataGridView控件

DataGridView对象从"绑定源"读取数据,你必须将其链接到包含SQL SELECT语句的TableAdapter。

你已经走了一半了。使连接字符串正常工作是成功的一半。另一半是找出你的数据相对于DatagridView在哪里。

祝你好运!

您必须将参数添加到SqlCommand才能使用:

Command.Parameters.AddWithValue("@varDate", DateTimePicker1.Value);

当我看到你的代码时,你缺少参数值的赋值,

 Command.CommandText = "Select * From orders where date_purchased <= @varDate ";

在这行之后,您必须为命令对象提供参数值。

Command.Parameters.AddWithValue("@varDate", DateTimePicker1.Value);