救命!怎样让数据表的一个列自动生成数据?100分送上 使用DataSet.Tables[0].Columns[0].Expression 试试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考private void button2_Click(object sender, System.EventArgs e){DataTable dt = new DataTable();dt.Columns.Add("sfzh",typeof(System.String));dt.Columns.Add("zkzh",typeof(System.String));DataRow dr1 = dt.NewRow();dr1.BeginEdit();dr1["sfzh"] = "120104780726435";dr1.EndEdit();DataRow dr2 = dt.NewRow();dr2.BeginEdit();dr2["sfzh"] = "110105790602876";dr2.EndEdit();DataRow dr3 = dt.NewRow();dr3.BeginEdit();dr3["sfzh"] = "150103800420127";dr3.EndEdit();dt.Rows.Add(dr1);dt.Rows.Add(dr2);dt.Rows.Add(dr3);this.dataGrid1.DataSource = dt.DefaultView;int number=1;foreach(DataRow dr in dt.Rows){ string str = dr["sfzh"].ToString().Trim().Substring(0,3); str = str +"2000"; for(int i=3;i>number.ToString().Trim().Length;i--) { str = str+"0"; } str = str +number.ToString(); dr.BeginEdit(); dr["zkzh"] = str; str = ""; number++; }} 可以在datatable的RowChanged事件中进行 1、截取数据表“身份证号码”列里的前三位作为它的前三位,这个不难吧?2、然后第四位是2,第五位到第七位是000就不用说 了3、第八位到第十位自动从001累加,你可用定义一个变量, 然后循环自增, 例如 for(int i=1;;i++) { string str=i.ToString().PadLeft(3,'0'); ...判断什么时候跳出循环... } 用foreach(DataRow row in dataset.tables["table"].rows)来计算赋值吧 确实象xrascal说的那样 报错信息说“终止时间3”是 DBNull应该怎样编写代码呀,谢谢 //假如你要操作的表的名字(ID)是dt://也就是说你如果用到了数据集了,那么//DataTable dt = DataSet.Tables["你的表名"];for(int i=0;i<dt.Rows.Count;i++){ string str = dt.Rows[i]["身份证号码"].ToString(); str = str.Substring(0,3)+"2000"+(i+1).ToString().PadLeft(3,'0'); dt.Rows[i]["准考证号码"] = str;}如果还有不理解的地方再问我吧。 这个函数在C#中怎么声明 要打包一个软件,大家能帮我看看吗? 如何在代码中启动应用程序? 关于socket send与Receive的问题 重发: 请高手支招. 关于dataview更新dataset的问题 winform中怎样用listbox邦定DataSet? 散100分了,BS模式的应用程序怎么调用打印机? 如何使自己的软件经过某一时间后过期? BinaryWrite的问题 网上看到一个Tank游戏的代码,学习一下,可是运行后,按键盘老是叮叮的响,为什么? image 类型的显示,帮忙啊 天文问题?
private void button2_Click(object sender, System.EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("sfzh",typeof(System.String));
dt.Columns.Add("zkzh",typeof(System.String));
DataRow dr1 = dt.NewRow();
dr1.BeginEdit();
dr1["sfzh"] = "120104780726435";
dr1.EndEdit();
DataRow dr2 = dt.NewRow();
dr2.BeginEdit();
dr2["sfzh"] = "110105790602876";
dr2.EndEdit();
DataRow dr3 = dt.NewRow();
dr3.BeginEdit();
dr3["sfzh"] = "150103800420127";
dr3.EndEdit();
dt.Rows.Add(dr1);
dt.Rows.Add(dr2);
dt.Rows.Add(dr3);
this.dataGrid1.DataSource = dt.DefaultView;
int number=1;
foreach(DataRow dr in dt.Rows)
{
string str = dr["sfzh"].ToString().Trim().Substring(0,3);
str = str +"2000";
for(int i=3;i>number.ToString().Trim().Length;i--)
{
str = str+"0";
}
str = str +number.ToString();
dr.BeginEdit();
dr["zkzh"] = str;
str = "";
number++;
}
}
2、然后第四位是2,第五位到第七位是000就不用说 了
3、第八位到第十位自动从001累加,你可用定义一个变量,
然后循环自增,
例如
for(int i=1;;i++)
{
string str=i.ToString().PadLeft(3,'0');
...判断什么时候跳出循环...
}
报错信息说“终止时间3”是 DBNull
应该怎样编写代码呀,谢谢
//也就是说你如果用到了数据集了,那么
//DataTable dt = DataSet.Tables["你的表名"];
for(int i=0;i<dt.Rows.Count;i++)
{
string str = dt.Rows[i]["身份证号码"].ToString();
str = str.Substring(0,3)+"2000"+(i+1).ToString().PadLeft(3,'0');
dt.Rows[i]["准考证号码"] = str;
}
如果还有不理解的地方再问我吧。