在masktextbox中无论是写“2000-1-1”还是“20000101”还是“2000/1/1”都会报出“字符串转换datatime失败的错误”代码如下 public void Part_SaveClass(string Sarr, string ID1, string ID2, Control.ControlCollection Contr, string BoxName, string TableName, int n, int m)
{
string tem_Field = "", tem_Value = "";
int p = 2;
if (m == 1)
{ //当m为1时,表示添加数据信息
if (ID1 != "" && ID2 == "")
{ //根据参数值判断添加的字段
tem_Field = "ID";
tem_Value = "'" + ID1 + "'";
p = 1;
}
else
{
tem_Field = "Sut_id,ID";
tem_Value = "'" + ID1 + "','" + ID2 + "'";
}
}
else
if (m == 2)
{ //当m为2时,表示修改数据信息
if (ID1 != "" && ID2 == "")
{ //根据参数值判断添加的字段
tem_Value = "ID='" + ID1 + "'";
p = 1;
}
else
tem_Value = "Sut_ID='" + ID1 + "',ID='" + ID2 + "'";
} if (m > 0)
{ //生成部份添加、修改语句
string[] Parr = Sarr.Split(Convert.ToChar(','));
for (int i = p; i < n; i++)
{
string sID = BoxName + i.ToString(); //通过BoxName参数获取要进行操作的控件名称
foreach (Control C in Contr)
{ //遍历控件集中的相关控件
if (C.GetType().Name == "TextBox" | C.GetType().Name == "MaskedTextBox" | C.GetType().Name == "ComboBox")
if (C.Name == sID)
{ //如果在控件集中找到相应的组件
object Ctext = C.Text;
if (C.GetType().Name == "MaskedTextBox") //如果当前是MaskedTextBox控件
Ctext = Date_Format(C.Text);
//对当前控件的值进行格式化
if (m == 1)
{ //组合SQL语句中insert的相关语句
tem_Field = tem_Field + "," + Parr[i];
if (Ctext == "")
tem_Value = tem_Value + "," + "NULL";
else
tem_Value = tem_Value + "," + "'" + Ctext + "'";
}
if (m == 2)
{ //组合SQL语句中update的相关语句
if (Ctext == "")
tem_Value = tem_Value + "," + Parr[i] + "=NULL";
else
tem_Value = tem_Value + "," + Parr[i] + "='" + Ctext + "'";
}
}
}
}
ADDs = "";
if (m == 1) //生成SQL的添加语句
ADDs = "insert into " + TableName + " (" + tem_Field + ") values(" + tem_Value + ")";
if (m == 2) //生成SQL的修改语句
if (ID2 == "") //根据ID2参数,判断修改语句的条件
ADDs = "update " + TableName + " set " + tem_Value + " where ID='" + ID1 + "'";
else
ADDs = "update " + TableName + " set " + tem_Value + " where ID='" + ID2 + "'";
}
} public string Date_Format(string NDate)
{
string sm, sd;
int y, m, d;
try
{
y = Convert.ToDateTime(NDate).Year;
m = Convert.ToDateTime(NDate).Month;
d = Convert.ToDateTime(NDate).Day;
}
catch
{
return "";
}
if (y == 1900)
return "";
if (m < 10)
sm = "0" + Convert.ToString(m);
else
sm = Convert.ToString(m);
if (d < 10)
sd = "0" + Convert.ToString(d);
else
sd = Convert.ToString(d);
return Convert.ToString(y) + "-" + sm + "-" + sd;
}
public SqlDataReader getcom(string SQLstr)
{
OpenCon();
SqlCommand My_com = MyCon.CreateCommand();
My_com.CommandText = SQLstr;
SqlDataReader My_read = My_com.ExecuteReader();
return My_read;
}
public DataSet getDataSet1(string SQLstr, string tableName)
{
OpenCon(); //打开与数据库的连接
SqlDataAdapter SQLda = new SqlDataAdapter(SQLstr, MyCon); //创建一个SqlDataAdapter对象,并获取指定数据表的信息
DataSet My_DataSet = new DataSet(); //创建DataSet对象
SQLda.Fill(My_DataSet, tableName); //通过SqlDataAdapter对象的Fill()方法,将数据表信息添加到DataSet对象中
CloseCon(); //关闭数据库的连接
return My_DataSet; //返回DataSet对象的信息
}
private void button4_Click(object sender, EventArgs e)
{
if (tabControl1.SelectedTab.Name == "TP2_1") //如果当前是“个人简历”选项卡
{ //定义字符串变量,并存储将“职工基本信息表”中的所有字段
string All_Field = "ID,name,编号,型号,数量,生产厂商,投产日期,安装地点,所属部门,是否备用,负责人"; if (hold_n == 1 || hold_n == 2) //判断当前是添加,还是修改操作
{
ModuleClass.MyModule.ADDs = ""; //清空MyModule公共类中的ADDs变量
//用MyModule公共类中的Part_SaveClass()方法组合添加或修改的SQL语句
MyModule1.Part_SaveClass(All_Field, L_1.Text.Trim(), "", tabControl1.TabPages[0].Controls, "L_", "设备设施信息表", 11, hold_n);
//如果ADDs变量不为空,则通过MyMeans公共类中的getsqlcom()方法执行添加、修改操作
if (ModuleClass.MyModule.ADDs != "")
MyMean.getsqlcom(ModuleClass.MyModule.ADDs);
}
}
{
string tem_Field = "", tem_Value = "";
int p = 2;
if (m == 1)
{ //当m为1时,表示添加数据信息
if (ID1 != "" && ID2 == "")
{ //根据参数值判断添加的字段
tem_Field = "ID";
tem_Value = "'" + ID1 + "'";
p = 1;
}
else
{
tem_Field = "Sut_id,ID";
tem_Value = "'" + ID1 + "','" + ID2 + "'";
}
}
else
if (m == 2)
{ //当m为2时,表示修改数据信息
if (ID1 != "" && ID2 == "")
{ //根据参数值判断添加的字段
tem_Value = "ID='" + ID1 + "'";
p = 1;
}
else
tem_Value = "Sut_ID='" + ID1 + "',ID='" + ID2 + "'";
} if (m > 0)
{ //生成部份添加、修改语句
string[] Parr = Sarr.Split(Convert.ToChar(','));
for (int i = p; i < n; i++)
{
string sID = BoxName + i.ToString(); //通过BoxName参数获取要进行操作的控件名称
foreach (Control C in Contr)
{ //遍历控件集中的相关控件
if (C.GetType().Name == "TextBox" | C.GetType().Name == "MaskedTextBox" | C.GetType().Name == "ComboBox")
if (C.Name == sID)
{ //如果在控件集中找到相应的组件
object Ctext = C.Text;
if (C.GetType().Name == "MaskedTextBox") //如果当前是MaskedTextBox控件
Ctext = Date_Format(C.Text);
//对当前控件的值进行格式化
if (m == 1)
{ //组合SQL语句中insert的相关语句
tem_Field = tem_Field + "," + Parr[i];
if (Ctext == "")
tem_Value = tem_Value + "," + "NULL";
else
tem_Value = tem_Value + "," + "'" + Ctext + "'";
}
if (m == 2)
{ //组合SQL语句中update的相关语句
if (Ctext == "")
tem_Value = tem_Value + "," + Parr[i] + "=NULL";
else
tem_Value = tem_Value + "," + Parr[i] + "='" + Ctext + "'";
}
}
}
}
ADDs = "";
if (m == 1) //生成SQL的添加语句
ADDs = "insert into " + TableName + " (" + tem_Field + ") values(" + tem_Value + ")";
if (m == 2) //生成SQL的修改语句
if (ID2 == "") //根据ID2参数,判断修改语句的条件
ADDs = "update " + TableName + " set " + tem_Value + " where ID='" + ID1 + "'";
else
ADDs = "update " + TableName + " set " + tem_Value + " where ID='" + ID2 + "'";
}
} public string Date_Format(string NDate)
{
string sm, sd;
int y, m, d;
try
{
y = Convert.ToDateTime(NDate).Year;
m = Convert.ToDateTime(NDate).Month;
d = Convert.ToDateTime(NDate).Day;
}
catch
{
return "";
}
if (y == 1900)
return "";
if (m < 10)
sm = "0" + Convert.ToString(m);
else
sm = Convert.ToString(m);
if (d < 10)
sd = "0" + Convert.ToString(d);
else
sd = Convert.ToString(d);
return Convert.ToString(y) + "-" + sm + "-" + sd;
}
public SqlDataReader getcom(string SQLstr)
{
OpenCon();
SqlCommand My_com = MyCon.CreateCommand();
My_com.CommandText = SQLstr;
SqlDataReader My_read = My_com.ExecuteReader();
return My_read;
}
public DataSet getDataSet1(string SQLstr, string tableName)
{
OpenCon(); //打开与数据库的连接
SqlDataAdapter SQLda = new SqlDataAdapter(SQLstr, MyCon); //创建一个SqlDataAdapter对象,并获取指定数据表的信息
DataSet My_DataSet = new DataSet(); //创建DataSet对象
SQLda.Fill(My_DataSet, tableName); //通过SqlDataAdapter对象的Fill()方法,将数据表信息添加到DataSet对象中
CloseCon(); //关闭数据库的连接
return My_DataSet; //返回DataSet对象的信息
}
private void button4_Click(object sender, EventArgs e)
{
if (tabControl1.SelectedTab.Name == "TP2_1") //如果当前是“个人简历”选项卡
{ //定义字符串变量,并存储将“职工基本信息表”中的所有字段
string All_Field = "ID,name,编号,型号,数量,生产厂商,投产日期,安装地点,所属部门,是否备用,负责人"; if (hold_n == 1 || hold_n == 2) //判断当前是添加,还是修改操作
{
ModuleClass.MyModule.ADDs = ""; //清空MyModule公共类中的ADDs变量
//用MyModule公共类中的Part_SaveClass()方法组合添加或修改的SQL语句
MyModule1.Part_SaveClass(All_Field, L_1.Text.Trim(), "", tabControl1.TabPages[0].Controls, "L_", "设备设施信息表", 11, hold_n);
//如果ADDs变量不为空,则通过MyMeans公共类中的getsqlcom()方法执行添加、修改操作
if (ModuleClass.MyModule.ADDs != "")
MyMean.getsqlcom(ModuleClass.MyModule.ADDs);
}
}
DateTime.TryParse(this.maskedTextBox.Text.ToString(), out t);楼主很喜欢用convert啊 这个习惯不好
foreach (Control c in Controls)
{
if (c.GetType().Name == "MaskedTextBox")
{
int y = Convert.ToDateTime(maskedTextBox1.Text).Year;
Console.Write(y.ToString());
}
}么有异常呀.