一个比较菜的问题,大家帮忙一下下~~~ 我的数据库里有一个技术领域字段(类型tinyint),存值时用数字代替文字(0 信息技术,1 生物技术,2 新材料,3 能源技术,4 激光技术,5 自动化技术 6 航天技术,7 海洋技术,8 其它技术领域)现在使用一个下拉框DROPdownlist绑定它(用代码绑定)要怎么在下拉框显示的是文字而不是数字? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你应该还有一个Tinyint的表吧? 直接读那个表不好么?没那表的话,就在设置Dropdownlist的Items时候,按顺序填上你的那些文字咧。 设置ListItem 如:<asp:ListItem Value="0">信息技术</asp:ListItem> 在DropDownList的DataBound事件中switch(DropDownList1.Text){ case "0": DropDownList1.Text = "信息技术"; break; case "1": DropDownList1.Text = "生物技术"; break; //.............} DROPDOWNLIST 不是有一个TEXT属性,一个VALUE属性 如果项是固顶的,那么可以在sql语句中处理啊,利用case……when 就可以了。 那个。。?我不是很懂2楼的意思,为什么要新建一个tinyint表?还有,我的dropdownlist是用代码绑定了的,从控件上设置item是无效的 写错了for(int i=0;i<DropDownList1.Items.Count;i++){ switch(DropDownList1.Items[i].Text){ case "0": DropDownList1.Items[i].Text = "信息技术"; break; case "1": DropDownList1.Items[i].Text = "生物技术"; break; //.............} } 2楼的意思是,一般你可以建多一个技术领域表,在这个表里面先定义好0表示信息技术,1表示生物技术等等,这样会比较好具体绑定例子如下DataTable dt = dropDownList.GetDDL(kinds); //从数据库找到需要的字段,仅供参考ddl.DataSource = dt;//ddl是你要的那个下拉列表ddl.DataTextField = dt.Columns["技术领域"].ToString();ddl.DataValueField = dt.Columns["ID"].ToString();//这里的id就是你的那个0 1 2 等等ddl.DataBind();这个是我做的项目的绑定方法,仅供参考要是你不想加多一个技术领域表,可以像其他人说的,绑定死那些数据,就是用ddl.Items.Insert这个方法,逐个添加到下拉列表里面 非常感谢11楼的答案!可以用了,但又出现新问题了:“/WebSite2”应用程序中的服务器错误。--------------------------------------------------------------------------------在将 nvarchar 值 '信息技术' 转换成数据类型 smallint 时失败。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 在将 nvarchar 值 '信息技术' 转换成数据类型 smallint 时失败。源错误: 行 66: cmd.Parameters["@技术领域"].Value = this.DropDownList3.SelectedItem.Value;行 67: GridView1.DataSource = cmd.ExecuteReader();行 68: GridView1.DataBind();行 69: conn.Close();行 70: } 这个似乎很难解决啊 DropDownList的Value不要变,还是01234……改的只是它的Text 如果是winform的comboBox的话,将一个Datatable邦到它的datasources中然后配置好哪个是显示字段,哪个是值字段,一取就ok 数据绑定方式。或者LZ直接建个表,用SQL语句直接AS过去就行 C# windowsfrom 菜鸟问题 bat命令复制文件夹下的最新一个文件 使用消息队列 异步插入数据,能发送消息,但是无法读取消息 谁给个英、中文的词库啊 winform程序,数据录入及编辑已经做好,但相关的数据表必须得新增加一个字段,并且改一个字段长度,必须从做嘛? 急啊! 怎么判断TextBox的数据是不是符合decimal(18, 2)? 如果有多种权限的话,用怎样的思路来登录会更简单呢? 请教怎么在类中调用主窗口中的控件? 属性是用访问器有什么优点? 怎样在listview里面加图片? 一个关于COM的问题 关于dataGridView行的背景色显示问题?
switch(DropDownList1.Text)
{
case "0":
DropDownList1.Text = "信息技术";
break;
case "1":
DropDownList1.Text = "生物技术";
break;
//.............
}
for(int i=0;i<DropDownList1.Items.Count;i++)
{
switch(DropDownList1.Items[i].Text)
{
case "0":
DropDownList1.Items[i].Text = "信息技术";
break;
case "1":
DropDownList1.Items[i].Text = "生物技术";
break;
//.............
}
}
DataTable dt = dropDownList.GetDDL(kinds); //从数据库找到需要的字段,仅供参考
ddl.DataSource = dt;//ddl是你要的那个下拉列表
ddl.DataTextField = dt.Columns["技术领域"].ToString();
ddl.DataValueField = dt.Columns["ID"].ToString();//这里的id就是你的那个0 1 2 等等
ddl.DataBind();这个是我做的项目的绑定方法,仅供参考要是你不想加多一个技术领域表,可以像其他人说的,绑定死那些数据,就是用ddl.Items.Insert这个方法,逐个添加到下拉列表里面
“/WebSite2”应用程序中的服务器错误。
--------------------------------------------------------------------------------在将 nvarchar 值 '信息技术' 转换成数据类型 smallint 时失败。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 在将 nvarchar 值 '信息技术' 转换成数据类型 smallint 时失败。源错误:
行 66: cmd.Parameters["@技术领域"].Value = this.DropDownList3.SelectedItem.Value;
行 67: GridView1.DataSource = cmd.ExecuteReader();
行 68: GridView1.DataBind();
行 69: conn.Close();
行 70: }
这个似乎很难解决啊
改的只是它的Text
或者LZ直接建个表,用SQL语句直接AS过去就行