请教个问题,我引用了一个新日期类(如下图,这个类无法using来引入),目的就是想让datagridview中的第一列的类型,默认就是我引入的这个日期列,以免让用户需要手工录入的麻烦,目前是在前端属性可以直接选择该类型,若用代码的话,请问怎么实现;
```c#
private void btnsearch_Click(object sender, EventArgs e)
{
conn = new SqlConnection ("server= 192.168.100.247; database= Whmesinfo;User= Sa;Password=whyy@2021");
conn.Open();
sqlstring = "select * from w_prohourcount where isnull(proname,'') like '%" + textBox1.Text + "%'and isnull(probatchNo,'') like '%"
+ textBox2.Text + "%' and isnull(batchNo,'') like '%" + textBox3.Text + "%'and [date] >= '"
+ dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'and [date] <= '"
+ dateTimePicker2.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'order by date asc";
try
{
SqlCommand cmd = new SqlCommand(sqlstring,conn);
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
sda.Fill(ds,"w_prohourcount");
dt = ds.Tables["w_prohourcount"];
dataGridView1.DataSource = dt.DefaultView;
this.dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView1.Columns[0].Visible = false;
dataGridView1.Columns[1].HeaderText = "日期";
dataGridView1.Columns[2].HeaderText = "车间";
dataGridView1.Columns[3].HeaderText = "班组";
dataGridView1.Columns[4].HeaderText = "班次";
dataGridView1.Columns[5].HeaderText = "工序";
dataGridView1.Columns[6].HeaderText = "批号";
dataGridView1.Columns[7].HeaderText = "产品批号";
dataGridView1.Columns[8].HeaderText = "产品名称";
dataGridView1.Columns[9].HeaderText = "规格";
dataGridView1.Columns[10].HeaderText = "单位";
dataGridView1.Columns[11].HeaderText = "当日产量";
dataGridView1.Columns[12].HeaderText = "累积产量";
dataGridView1.Columns[13].HeaderText = "完工状态";
dataGridView1.Columns[14].HeaderText = "人数";
dataGridView1.Columns[15].HeaderText = "工时";
dataGridView1.Columns[16].HeaderText = "备注";
}
catch (Exception)
{
throw;
}
finally { conn.Close(); }
}
```
不知道你这个问题是否已经解决, 如果还没有解决的话:DataBinding
,使用以上方法后仍然会自动生成新列。Visible
属性设为 false
。我可以通过以下代码来指定DataGridView中指定列的属性类型为自定义日期类型:
using MyCustomDateClass;
// 获取指定列的类型
Type myCustomDateType = typeof(MyCustomDate);
// 设置指定列的数据类型
dataGridView1.Columns[0].ValueType = myCustomDateType;
请注意,在上述代码中的"MyCustomDate"是你自己引用的日期类型的名称,请根据你实际引用的类名进行替换。
这段代码使用了typeof
关键字来获取自定义日期类型的Type
对象,并将其赋值给指定列的ValueType
属性。这样,当用户录入数据时,该列将默认使用自定义日期类型进行数据绑定和验证。
这个你打开 Form名.Designer.cs 文件,在里面就有 IDE 自动生成的代码,你所有通过设计器设置的属性,本质上都会转换成代码,照着复制粘贴就可以了。