Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C在2个Datetimepicker选择值之间填充Datagridview_C#_Winforms - Fatal编程技术网

C# C在2个Datetimepicker选择值之间填充Datagridview

C# C在2个Datetimepicker选择值之间填充Datagridview,c#,winforms,C#,Winforms,下面这些代码是我试图实现的,但不幸的是我没有做到这一点,这就是为什么我在这里。我真的需要你们帮我解决这些问题 public partial class SIMSSupplier : UserControl { ADDSupplier supply; ADDPReturns returns; public SIMSSupplier() { InitializeComponent(); } public DataTable dbdataset; public void CustomDate

下面这些代码是我试图实现的,但不幸的是我没有做到这一点,这就是为什么我在这里。我真的需要你们帮我解决这些问题

public partial class SIMSSupplier : UserControl
{
ADDSupplier supply;
ADDPReturns returns;
public SIMSSupplier()
{
    InitializeComponent();

}
public DataTable dbdataset;
public void CustomDatetime()
{
    var now = DateTime.Now;
    var first = new DateTime(now.Year, now.Month, 1);
    var last = first.AddMonths(1).AddDays(-1);
    DateReturn.Value = new DateTime(now.Year, now.Month, 1);
    DateReturn2.Value = last;
}
public void ReturnDetails()
{
    FillSupplier(PurchaseReturn, "Select ReturnID, Supplier, Itemdescription, Modelno, Srp, Code, Date, Remarks from Purchase_Return");
}
private void FillSupplier(DataGridView grid, string request)
{
    using (var con = SQLConnection.GetConnection())
    using (var select = new SqlCommand(request, con))
    using (var sda = new SqlDataAdapter())
    {
        dbdataset = new DataTable();
        sda.SelectCommand = select;
        sda.Fill(dbdataset);
        grid.DataSource = new BindingSource() { DataSource = dbdataset };
        sda.Update(dbdataset);
    }
}
 private void SIMSSupplier_Load(object sender, EventArgs e)
 {           
    ReturnDetails();
    CustomDatetime();
 }
 private void DateReturn2_ValueChanged(object sender, EventArgs e)
 {
    using (var con = SQLConnection.GetConnection())
    {
        using (var select = new SqlCommand("Select * from Purchase_Return where Date between '" + DateReturn.Value.ToString() + "' and '" + DateReturn2.Value.ToString() + "'", con))
        {
            using (var sd = new SqlDataAdapter(select))
            {
                var dv = new DataView(dbdataset);
                PurchaseReturn.DataSource = dv;
            }
        }
    }
 }
}
预期产出: 如果用户选择两个datetimepicker之间的日期,例如从9月1日到9月21日,则仅显示日期为9月1日到21日的行

public partial class SIMSSupplier : UserControl
{
ADDSupplier supply;
ADDPReturns returns;
public SIMSSupplier()
{
    InitializeComponent();

}
public DataTable dbdataset;
public void CustomDatetime()
{
    var now = DateTime.Now;
    var first = new DateTime(now.Year, now.Month, 1);
    var last = first.AddMonths(1).AddDays(-1);
    DateReturn.Value = new DateTime(now.Year, now.Month, 1);
    DateReturn2.Value = last;
}
public void ReturnDetails()
{
    FillSupplier(PurchaseReturn, "Select ReturnID, Supplier, Itemdescription, Modelno, Srp, Code, Date, Remarks from Purchase_Return");
}
private void FillSupplier(DataGridView grid, string request)
{
    using (var con = SQLConnection.GetConnection())
    using (var select = new SqlCommand(request, con))
    using (var sda = new SqlDataAdapter())
    {
        dbdataset = new DataTable();
        sda.SelectCommand = select;
        sda.Fill(dbdataset);
        grid.DataSource = new BindingSource() { DataSource = dbdataset };
        sda.Update(dbdataset);
    }
}
 private void SIMSSupplier_Load(object sender, EventArgs e)
 {           
    ReturnDetails();
    CustomDatetime();
 }
 private void DateReturn2_ValueChanged(object sender, EventArgs e)
 {
    using (var con = SQLConnection.GetConnection())
    {
        using (var select = new SqlCommand("Select * from Purchase_Return where Date between '" + DateReturn.Value.ToString() + "' and '" + DateReturn2.Value.ToString() + "'", con))
        {
            using (var sd = new SqlDataAdapter(select))
            {
                var dv = new DataView(dbdataset);
                PurchaseReturn.DataSource = dv;
            }
        }
    }
 }
}
在这些代码下面不会发生任何事情

public partial class SIMSSupplier : UserControl
{
ADDSupplier supply;
ADDPReturns returns;
public SIMSSupplier()
{
    InitializeComponent();

}
public DataTable dbdataset;
public void CustomDatetime()
{
    var now = DateTime.Now;
    var first = new DateTime(now.Year, now.Month, 1);
    var last = first.AddMonths(1).AddDays(-1);
    DateReturn.Value = new DateTime(now.Year, now.Month, 1);
    DateReturn2.Value = last;
}
public void ReturnDetails()
{
    FillSupplier(PurchaseReturn, "Select ReturnID, Supplier, Itemdescription, Modelno, Srp, Code, Date, Remarks from Purchase_Return");
}
private void FillSupplier(DataGridView grid, string request)
{
    using (var con = SQLConnection.GetConnection())
    using (var select = new SqlCommand(request, con))
    using (var sda = new SqlDataAdapter())
    {
        dbdataset = new DataTable();
        sda.SelectCommand = select;
        sda.Fill(dbdataset);
        grid.DataSource = new BindingSource() { DataSource = dbdataset };
        sda.Update(dbdataset);
    }
}
 private void SIMSSupplier_Load(object sender, EventArgs e)
 {           
    ReturnDetails();
    CustomDatetime();
 }
 private void DateReturn2_ValueChanged(object sender, EventArgs e)
 {
    using (var con = SQLConnection.GetConnection())
    {
        using (var select = new SqlCommand("Select * from Purchase_Return where Date between '" + DateReturn.Value.ToString() + "' and '" + DateReturn2.Value.ToString() + "'", con))
        {
            using (var sd = new SqlDataAdapter(select))
            {
                var dv = new DataView(dbdataset);
                PurchaseReturn.DataSource = dv;
            }
        }
    }
 }
}
注:

public partial class SIMSSupplier : UserControl
{
ADDSupplier supply;
ADDPReturns returns;
public SIMSSupplier()
{
    InitializeComponent();

}
public DataTable dbdataset;
public void CustomDatetime()
{
    var now = DateTime.Now;
    var first = new DateTime(now.Year, now.Month, 1);
    var last = first.AddMonths(1).AddDays(-1);
    DateReturn.Value = new DateTime(now.Year, now.Month, 1);
    DateReturn2.Value = last;
}
public void ReturnDetails()
{
    FillSupplier(PurchaseReturn, "Select ReturnID, Supplier, Itemdescription, Modelno, Srp, Code, Date, Remarks from Purchase_Return");
}
private void FillSupplier(DataGridView grid, string request)
{
    using (var con = SQLConnection.GetConnection())
    using (var select = new SqlCommand(request, con))
    using (var sda = new SqlDataAdapter())
    {
        dbdataset = new DataTable();
        sda.SelectCommand = select;
        sda.Fill(dbdataset);
        grid.DataSource = new BindingSource() { DataSource = dbdataset };
        sda.Update(dbdataset);
    }
}
 private void SIMSSupplier_Load(object sender, EventArgs e)
 {           
    ReturnDetails();
    CustomDatetime();
 }
 private void DateReturn2_ValueChanged(object sender, EventArgs e)
 {
    using (var con = SQLConnection.GetConnection())
    {
        using (var select = new SqlCommand("Select * from Purchase_Return where Date between '" + DateReturn.Value.ToString() + "' and '" + DateReturn2.Value.ToString() + "'", con))
        {
            using (var sd = new SqlDataAdapter(select))
            {
                var dv = new DataView(dbdataset);
                PurchaseReturn.DataSource = dv;
            }
        }
    }
 }
}
DateReturn和DateReturn2都是datetimepicker,第一个是DateReturn

public partial class SIMSSupplier : UserControl
{
ADDSupplier supply;
ADDPReturns returns;
public SIMSSupplier()
{
    InitializeComponent();

}
public DataTable dbdataset;
public void CustomDatetime()
{
    var now = DateTime.Now;
    var first = new DateTime(now.Year, now.Month, 1);
    var last = first.AddMonths(1).AddDays(-1);
    DateReturn.Value = new DateTime(now.Year, now.Month, 1);
    DateReturn2.Value = last;
}
public void ReturnDetails()
{
    FillSupplier(PurchaseReturn, "Select ReturnID, Supplier, Itemdescription, Modelno, Srp, Code, Date, Remarks from Purchase_Return");
}
private void FillSupplier(DataGridView grid, string request)
{
    using (var con = SQLConnection.GetConnection())
    using (var select = new SqlCommand(request, con))
    using (var sda = new SqlDataAdapter())
    {
        dbdataset = new DataTable();
        sda.SelectCommand = select;
        sda.Fill(dbdataset);
        grid.DataSource = new BindingSource() { DataSource = dbdataset };
        sda.Update(dbdataset);
    }
}
 private void SIMSSupplier_Load(object sender, EventArgs e)
 {           
    ReturnDetails();
    CustomDatetime();
 }
 private void DateReturn2_ValueChanged(object sender, EventArgs e)
 {
    using (var con = SQLConnection.GetConnection())
    {
        using (var select = new SqlCommand("Select * from Purchase_Return where Date between '" + DateReturn.Value.ToString() + "' and '" + DateReturn2.Value.ToString() + "'", con))
        {
            using (var sd = new SqlDataAdapter(select))
            {
                var dv = new DataView(dbdataset);
                PurchaseReturn.DataSource = dv;
            }
        }
    }
 }
}

我试图选择9月22日,但没有发生任何事情,我不确定这是否100%正确,但主要想法是尝试使用新的datatable将其设置为数据源

public partial class SIMSSupplier : UserControl
{
ADDSupplier supply;
ADDPReturns returns;
public SIMSSupplier()
{
    InitializeComponent();

}
public DataTable dbdataset;
public void CustomDatetime()
{
    var now = DateTime.Now;
    var first = new DateTime(now.Year, now.Month, 1);
    var last = first.AddMonths(1).AddDays(-1);
    DateReturn.Value = new DateTime(now.Year, now.Month, 1);
    DateReturn2.Value = last;
}
public void ReturnDetails()
{
    FillSupplier(PurchaseReturn, "Select ReturnID, Supplier, Itemdescription, Modelno, Srp, Code, Date, Remarks from Purchase_Return");
}
private void FillSupplier(DataGridView grid, string request)
{
    using (var con = SQLConnection.GetConnection())
    using (var select = new SqlCommand(request, con))
    using (var sda = new SqlDataAdapter())
    {
        dbdataset = new DataTable();
        sda.SelectCommand = select;
        sda.Fill(dbdataset);
        grid.DataSource = new BindingSource() { DataSource = dbdataset };
        sda.Update(dbdataset);
    }
}
 private void SIMSSupplier_Load(object sender, EventArgs e)
 {           
    ReturnDetails();
    CustomDatetime();
 }
 private void DateReturn2_ValueChanged(object sender, EventArgs e)
 {
    using (var con = SQLConnection.GetConnection())
    {
        using (var select = new SqlCommand("Select * from Purchase_Return where Date between '" + DateReturn.Value.ToString() + "' and '" + DateReturn2.Value.ToString() + "'", con))
        {
            using (var sd = new SqlDataAdapter(select))
            {
                var dv = new DataView(dbdataset);
                PurchaseReturn.DataSource = dv;
            }
        }
    }
 }
}
private void DateReturn2_ValueChanged(object sender, EventArgs e)
 {
    using (var con = SQLConnection.GetConnection())
    {
         using (var select = new SqlCommand("Select * from Purchase_Return where Date between @date1 and @date2", con))
        {
            select.Parameters.Add("@date1",SqlDbType.Date).value= DateReturn1.Value;
            select.Parameters.Add("@date2",SqlDbType.Date).value= DateReturn2.Value;

            using (var sd = new SqlDataAdapter(select))
            {                    
                DataTable newDT= new DataTable();
                sd.selectcommand = select;
                sd.fill(newDT);
                //PurchaseReturn.DataSource = null;
                PurchaseReturn.DataSource = newDT;        
            }
        }
    }
 }

您是否已在DateReturn2\u值更改时调试?看看dv的内容是什么?。我认为您需要初始化新的datatable,而不是使用dataView。或者,如果不想初始化新的datatable,请尝试在初始化之前清除dbdatasethand@chopperfield我试着调试它,dv是空的。你能详细说明你的建议吗?否决票——因为你在回答中没有使用参数——还有更多links@RandRandom真的吗?那更像是建议,伙计。我只是想给他一个解决问题的想法/概念problem@RandRandom这样做,你就不鼓励人们给出答案,发表评论,而不是发表意见是的,真的。这是一个很大的问题,在这个世界上,没有一个开发人员应该用字符串来定义参数,并且总是使用参数-你永远不想遇到和Bobby面临的问题一样的问题-Addwithvalue不推荐使用参数,你应该给他一个正确的方法。