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

radiobutton和数据库的问题

--------------------编程问答-------------------- 你先打断点,看一看dr[3].ToString()的值是什么吧,我估计不是"男",所以每次判断都走的else分支。 --------------------编程问答-------------------- 我觉得也是每次都是走的else分支,可是我也是初学,能请教下到底怎么实现这个功能吗 --------------------编程问答-------------------- 我刚试了下,那个就是“男” --------------------编程问答--------------------

        private void button7_Click(object sender, EventArgs e)
        {


            SqlConnection conn;
            string str = "server=.;database=zy;Integrated Security=true";
            conn = new SqlConnection(str);
            SqlCommand cmd = new SqlCommand("select * from student", conn);
            SqlDataAdapter sda = new SqlDataAdapter();
            sda.SelectCommand = cmd;
            DataSet ds = new DataSet();
            sda.Fill(ds);
            DataTable s = ds.Tables[0];
            DataRow dr = s.Rows[0];

            textBox1.Text = dr[0].ToString();
            textBox2.Text = dr[1].ToString();
            textBox3.Text = dr[2].ToString();
            textBox4.Text = dr[4].ToString();
            label9.Text = dr[3].ToString();
            dr[3].ToString();
            if (dr[3].ToString()=="男")
               radioButton1.Checked=true;
            else
                radioButton2.Checked=true; 
           }
你看我把dr[3].ToString()赋给了lable9,然后lable9显示“男”,可是一到radiobutton就不起作用 --------------------编程问答-------------------- 有可能dr[3].ToString()的结果是“男  ”,比如多个空格什么的。

在代码窗口左边,在 label9.Text = dr[3].ToString(); 这一行的行号再左边一点,用鼠标点一下,就可以打一下一个断点,然后按F5运行程序。等程序运行到这行时,会自动停下来,然后你可以在IDE正文的局部变量观察窗口里,看到这些变量的值,仔细看一下label9.Text的值吧。

调试代码,也是除了代码录入外的基本功啊。 --------------------编程问答-------------------- 我又试了试,还是不行,求指教啊 --------------------编程问答-------------------- 感谢你,弄好了,啦啦, --------------------编程问答-------------------- 就是if (dr[3].ToString() == "男         ")就对了
             --------------------编程问答-------------------- 看你的两个单选控件是否绑定事件并执行代码了。

楼上说的很清楚了。断点调试一下。 --------------------编程问答-------------------- 恩呢啦,thank you 了,我今天刚注册的账号,就碰到这么给力的事情,可是分不够给,下次一并给了,嘻嘻 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 再说点题外话吧。

类似性别这类可以用枚举的方式列出所有值域的字段,建议在数据库一端使用int这样的整型来保存,而不建议用bool类型保存。

比如用-1表示性别待定,0表示女,1表示男。这样在你的应用程序端,可以定义一个枚举:
public enum Sex { 待定= -1, 女 = 0, 男 = 1};   // 又见中文编程,呵呵


之后可以直接用某个Sex类型的变量,比如sex.ToString()来输出“待定”、“女”或者“男“了。貌似SQL Server 2012开始直接提供对枚举类型的支持了,有空可以去看一看。 --------------------编程问答--------------------
引用 8 楼 zhaoxiaoyueyue 的回复:
就是if (dr[3].ToString() == "男         ")就对了

这样做不太好...空格的话去掉吧同trim --------------------编程问答--------------------  label7.Text = Convert.ToString(s.Rows.Count);
为什么获取不了?s是表。
把获取到的行数赋给 label7.Text,,不可行啊?为什么啊?改怎么做? 
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,