按钮不可用就是不能实现 为什么啊 江湖救急

问题描述

权限表如下IDsysuserpasswordsave_1calculate_1input_11001abc1112002bac1103003cab1004004cba000(其中save_1calculate_1input_1表示主窗体中的按钮,0或1表示能用与否)privatevoidbutton1_Click(objectsender,EventArgse)//登录按钮{LinkDataBase.Open();stringusername=this.textBox1.Text;stringpassword=this.textBox2.Text;stringselectsql="select*from用户权限wheresysuser='"+username+"'andpassword='"+password+"'";SqlCommandcmd=newSqlCommand(selectsql,LinkDataBase.Connection);cmd.CommandType=CommandType.Text;SqlDataReadersdr;sdr=cmd.ExecuteReader();if(sdr.Read()){boolenabled2=Convert.ToBoolean(sdr["save_1"]);boolenabled3=Convert.ToBoolean(sdr["calculate_1"]);boolenabled4=Convert.ToBoolean(sdr["input_1"]);//问题可能出在这三行,我不确定sdr返回值FrmMainfrmMain=newFrmMain(enabled2,enabled3,enabled4);//重载主窗体函数publicFrmMain(boolenabled2,boolenabled3,boolenabled4):this(){this.button2.Enabled=enabled2;this.button3.Enabled=enabled3;this.button4.Enabled=enabled4;}sdr.Close();FrmMain.isRunMain=true;frmMain.Show();this.Close();}else{if(MessageBox.Show("输入用户密码有误,是否重新登录","输入有误",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK){this.textBox1.Clear();this.textBox2.Clear();}else{Application.Exit();}}}其他都没出问题,就是我把enabled都改成false三个按钮依然可用!!!!!哪位前辈救救我

解决方案

解决方案二:
我已经没分了急求解决方案
解决方案三:
单步调试下,你的FrmMain窗体load事件是否对三个button的Enabled属性又重新赋值了呢?
解决方案四:
我觉得是你if(sdr.Read()){}函数体里面的内容没有执行。boolenabled4=Convert.ToBoolean(sdr["input_1"]);当你这个sdr["input_1"]的值为0或者1时,转换会出问题。程序直接接崩了。所以估计if的函数体里面并没有执行
解决方案五:
引用3楼xiaoguidangjiajia的回复:

我觉得是你if(sdr.Read()){}函数体里面的内容没有执行。boolenabled4=Convert.ToBoolean(sdr["input_1"]);当你这个sdr["input_1"]的值为0或者1时,转换会出问题。程序直接接崩了。所以估计if的函数体里面并没有执行

为什么转换会出问题?那要怎么解决呢?请指教
解决方案六:
引用4楼teddy169的回复:

Quote: 引用3楼xiaoguidangjiajia的回复:
我觉得是你if(sdr.Read()){}函数体里面的内容没有执行。boolenabled4=Convert.ToBoolean(sdr["input_1"]);当你这个sdr["input_1"]的值为0或者1时,转换会出问题。程序直接接崩了。所以估计if的函数体里面并没有执行

为什么转换会出问题?那要怎么解决呢?请指教

我主窗体是可以正常显示的,用户名密码正确就可以登陆,只是权限区分不开,所有按钮4个用户号都能用
解决方案七:
Convert.ToBoolean()本身有多个重载。sdr["save_1"])本身是个字符串。当ToBoolean参数为string的时候,只有“true”和"false"两种值可以转换成功。当然你可以先把sdr["save_1"])转换为int:boolenabled4=Convert.ToBoolean(Int32.Parse(sdr["input_1"]));

时间: 2024-11-02 13:09:05

按钮不可用就是不能实现 为什么啊 江湖救急的相关文章

javascript实现表单提交后,提交按钮不可用的方法

 具体如下: 这里使用javascript控制表单提交后,提交按钮不可用,可以防止用户多次提交. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>表单提交后按钮禁用</title> <

JS自动倒计时30秒后按钮才可用(两种场景)_javascript技巧

展示效果图: WEB开发中经常会用到倒计时来限制用户对表单的操作,比如希望用户在一定时间内看完相关协议信息才允许用户继续下一步操作,又比如在收取手机验证码时允许用户在一定时间过后(未收到验证码的情况下)再次获取验证码.那么今天我来给大家介绍下如何使用Javascript来实现这一简单应用.     查看演示 下载源码 应用场景1:用户注册时阅读完相关协议信息后才能激活按钮 某些网站注册时要求用户同意所谓的用户协议之类的信息,如果协议内容非常重要,有些网站会要求新注册的用户一定要阅读完相关协议信息

JS实现自动倒计时30秒后按钮才可用

WEB开发中经常会用到倒计时来限制用户对表单的操作,比如希望用户在一定时间内看完相关协议信息才允许用户继续下一步操作,又比如在收取手机验证码时允许用户在一定时间过后(未收到验证码的情况下)再次获取验证码.那么今天我来给大家介绍下如何使用Javascript来实现这一简单应用. 应用场景1:用户注册时阅读完相关协议信息后才能激活按钮某些网站注册时要求用户同意所谓的用户协议之类的信息,如果协议内容非常重要,有些网站会要求新注册的用户一定要阅读完相关协议信息才能激活下一步按钮提交表单.为了让用户能阅读

java-求大神门帮助.. 一个按钮, 如果点开以后里面没有数据,按钮不可用

问题描述 求大神门帮助.. 一个按钮, 如果点开以后里面没有数据,按钮不可用 public void loadData() { final Promise<VisionEncounter> vePromise = nodeMgr.getByEncounter(VisionEncounter.class); final Promise<Patient> patientPromise = nodeMgr.getPatient(); final Promise<GetVisualA

javascript实现表单提交后,提交按钮不可用的方法_javascript技巧

本文实例讲述了javascript实现表单提交后,提交按钮不可用的方法.分享给大家供大家参考.具体如下: 这里使用javascript控制表单提交后,提交按钮不可用,可以防止用户多次提交. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>表单提交后按钮禁用</title> &l

vb的按钮控件

使用CommandButton控件 命令按钮控件被用来启动.中断或结束一个进程.单击它时将调用已写入Click 事件过程中的命令. 大多数Visual Basic应用程序中都有命令按钮,用户可以单击按钮执行操作.单击时,按钮不仅能执行相应的操作,而且看起来就象是被按下和松开一样,因此有时称其为下压按钮.详细信息 关于 CommandButton 控件的简单示例,请参阅第三章,"窗体.控件和菜单"中的"单击按钮执行操作". 向窗体添加命令按钮在应用程序中很可能要使用一

用注册表恢复“碎片整理”按钮功能

     有时候我们会发现电脑中"碎片整理"的按钮变成灰色,不可用,也不知道该怎样恢复原样.其实我们可以动用注册表来恢复"碎片整理"按钮的可用状态. 找到文件"C:\Windows\Inf\dfrg.inf"(C为你的系统所在盘符),用右键单击并选择"选择安装".要注意的是,要安装"dfrg.inf"需要有文件"dfrg.msc"."defrag.exe"."

注册或者点击按钮时,怎么防止用户重复提交数据

 这篇文章主要是对注册或者点击按钮时,怎么防止用户重复提交数据进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 asp.net实现点击按钮后设按钮不可用并提交  代码如下: <asp:Button ID="Button1" runat="server" Text="123456" OnClientClick="this.disabled=true;this.form.submit(); "  UseSubmitB

三个按钮背后由小见大的交互思考

  初入交互设计工作,最常见的需求就是--放按钮.放按钮看起来是超级简单的事,无非就是设计按钮的样式.摆放按钮的位置.确定按钮的状态与反馈等,但殊不知其『麻雀虽小,五脏俱全』,小小的按钮设计中也蕴含了很多交互设计的思维,当然除了设计本身之外,还能看到如何平衡开发.产品以及用户各方的需求. 所以,本文章会通过三个真实但抽象的例子说明工作中『放按钮』是怎么做的.真实说的是案例来源于实战,抽象就是提炼出思维但讲的场景都是虚拟的,免得透露机密.有趣的是,三个按理都和时间.时效有关. 案例一 虚拟场景:某