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不推荐使用参数,你应该给他一个正确的方法。