当前位置:编程学习 > C#/ASP.NET >>

变量类型转换的问题

asp.net开发环境。界面上有textBox1,textBox2,textBox3...textBox92分别用于用户输入数据(每个textBox.text对应一个数据库表中的一个字段,字段类型涉及数字、字符及日期),最终将作为一条记录插入到数据库中。请问如何较块地将textBox中的text转换成相应的数据库字段类型。需要一条一条地covert吗?有没有较快的方法。请有经验的朋友回复。
附一段主要代码:
   
   for (int i = 0; i < 92; i++)
        {
            o = this.GetType().GetField("txt" + i.ToString(), System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue(this);
            if (o != null)
            {
             txt = (System.Web.UI.WebControls.TextBox)o;
   DataRow dr = ds.Tables["persons"].NewRow();
    dr[i] =txt.Text; //这句肯定通不过。因未做变量类型转换。
      }
} --------------------编程问答-------------------- 一条一条的转换。。 --------------------编程问答-------------------- 只能一条一条转换 --------------------编程问答-------------------- 我相信应该有更好的方法的。顺便说明一下,我使用的开发工具是vs2005。 --------------------编程问答-------------------- 遍历控件。

若 

control is TextBox

则……

就这样。 --------------------编程问答-------------------- 4楼朋友,我的代码已遍历了控件。所以问题主要是如何将textbox.text的数据类型快速地转换成数据库表中相应字段的数据类型。最麻烦的是一条一条地转换啰。 --------------------编程问答-------------------- 可以读取每个Column的类型(如果没记错属性名字的话,应该是:ds.Tables["persons"].Columns[i].DataType)再根据情况做转换 --------------------编程问答-------------------- 路过
看看 --------------------编程问答-------------------- C#能否有实现下述功能的语句或方法呢?--
//i为变量,.type为i的变量类型
i.type=ds.Tables["persons"].Column[i].DataType --------------------编程问答-------------------- 表字段应该有实体类的吧..

可以直接取到实体类里面字段的类型. --------------------编程问答-------------------- 只能一个转换了。 --------------------编程问答-------------------- 别怎么转换,使用什么方法,最终还是一个个的转换 --------------------编程问答-------------------- 学习中...... --------------------编程问答-------------------- 还是一条一条的自己转化吧,你说的那种可以,不过非常麻烦 --------------------编程问答-------------------- 一条一条 这样 不是很麻烦啊· --------------------编程问答-------------------- 一条一条转化 --------------------编程问答--------------------
dr[i] = Convert.ChangeType(txt.Text, ds.Tables["persons"].Column[i].DataType)

仅对基础类型有效,并且在无法转换时会抛出异常(例如:把"a"转换成int时) --------------------编程问答-------------------- 看来这种情况,还是得老老实实地一个一个去写转换了。但是还是碰到新问题。如下面的代码:
                 
                  dr[1] = Convert.ToInt32(txt1.Text);
                dr[2] = Convert.ToString(txt2.Text);
                dr[3] = Convert.ToInt64(txt3.Text);
                dr[4] = Convert.ToInt64(txt4.Text);
                dr[5] = Convert.ToString(txt5.Text);
                dr[6] = Convert.ToInt32(txt6.Text);
                dr[7] = Convert.ToDateTime(txt7.Text);
                dr[8] = Convert.ToInt32(txt8.Text);
                dr[9] = Convert.ToInt32(txt9.Text);
                dr[10] = Convert.ToInt32(txt10.Text);
                ...

当textbox中的Text有相应的值时,可能编译通过。但如果当中有空值情况怎么去处理呢?总不能每一条都要去写一条if语句吧?大家有何高见? --------------------编程问答-------------------- 肯定要判断了,空值转换会出错 --------------------编程问答-------------------- 顶
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,