【WPF学习笔记】之如何设置下拉框读取SqlServer数据库的值:动画系列之(一)
先前条件:设置好数据库,需要三个文件CommandInfo.cs、DbHelperSQL.cs、myHelper.cs,需要修改命名空间,参照之前随笔http://www.cnblogs.com/Owen-ET/p/5999654.html
添加一个表的类User_test对应数据库的表,如下图:
User_test类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data; namespace User.sqlHelper
{
[Serializable]
class User_test
{
public User_test()
{ } #region
private int _userID;
private string _userName;
private int _userGrade;
private string _userPassword; public int UserID
{
set { _userID = value; }
get { return _userID; }
} public string UserName
{
set { _userName = value;}
get { return _userName; }
} public int UserGrade
{
set { _userGrade = value; }
get { return _userGrade; }
} public string UserPassword
{
set { _userPassword = value;}
get { return _userPassword; }
} #endregion #region public User_test(int userID)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select UserID,UserName,UserGrade");
strSql.Append(" FROM [User] ");
strSql.Append(" where UserID=@userID"); SqlParameter[] parameter = {
new SqlParameter("@userID",SqlDbType.Int,)};
parameter[].Value = userID; DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameter);
if( ds.Tables[].Rows.Count > )
{
if (ds.Tables[].Rows[]["UserID"] != null) { this.UserID = int.Parse(ds.Tables[].Rows[]["UserID"].ToString().Trim()); }
if (ds.Tables[].Rows[]["UserName"] != null) { this.UserName = ds.Tables[].Rows[]["UserName"].ToString().Trim(); }
if (ds.Tables[].Rows[]["UserGrade"] != null) { this.UserGrade = int.Parse(ds.Tables[].Rows[]["UserGrade"].ToString().Trim()); }
if (ds.Tables[].Rows[]["UserPassword"] != null) { this.UserPassword = ds.Tables[].Rows[]["UserPassword"].ToString().Trim(); }
}
} //根据id得到名字
public string getUserName(int userid)
{
string name = "";
StringBuilder strSql = new StringBuilder();
strSql.Append("select UserName ");
strSql.Append(" FROM [User] ");
strSql.Append("where UserID=@userID");
SqlParameter[] parameter = {
new SqlParameter("@userID",SqlDbType.Int,)};
parameter[].Value = userid;
DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameter); if(ds.Tables[].Rows.Count > )
{
if (ds.Tables[].Rows[]["UserName"] != null) { name = ds.Tables[].Rows[]["UserName"].ToString().Trim(); }
}
return name;
} //根据名字得到级别
public int getUserGrade(string username)
{
int grade = ;
StringBuilder strSql = new StringBuilder();
strSql.Append("select UserGrade ");
strSql.Append(" FROM [User] ");
strSql.Append(" where UserName=@userName");
SqlParameter[] parameter = {
new SqlParameter("@userName", SqlDbType.VarChar,)};
parameter[].Value = username;
DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameter); if(ds.Tables[].Rows.Count > )
{
if (ds.Tables[].Rows[]["UserGrade"] != null) { grade = int.Parse(ds.Tables[].Rows[]["UserGrade"].ToString().Trim()); }
}
return grade;
} /// <summary>
/// 增加一条数据
/// </summary>
///
public int Add(string username)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into [User] (");
strSql.Append("UserName)");
strSql.Append(" values(");
strSql.Append("@userName)");
SqlParameter[] parameter = {
new SqlParameter("@userName",SqlDbType.VarChar,)};
parameter[].Value = username; object obj = DbHelperSQL.Query(strSql.ToString(), parameter);
if (obj == null)
{
return ;
}
else
{
return Convert.ToInt32(obj);
}
} /// <summary>
/// 删除一条数据
/// </summary>
public bool Delete(int userid)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("delete from [User] ");
strSql.Append(" where UserID=" + UserID.ToString()); int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
if (rows > )
{
return true;
}
else
{
return false;
}
} /// <summary>
/// 获得数据列表
/// </summary>
///
public DataSet GetList()
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select * ");
strSql.Append("FROM [User]");
return DbHelperSQL.Query(strSql.ToString());
} #endregion
}
}
对应数据库:
然后在xaml中设置下拉框:
<UserControl x:Class="User.uc_login"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
Loaded="UserControl_Loaded"
d:DesignHeight="1080" d:DesignWidth="1920">
<Canvas x:Name="c_login" Width="1920" Height="1080" Background="Azure">
<Canvas x:Name="c_log" Width="600" Height="600" Canvas.Left="680" Canvas.Top="100" Background="AntiqueWhite">
<Label Content="用户:" Width="122" Height="80" FontSize="35" Canvas.Left="100" Canvas.Top="105" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
<ComboBox x:Name="cb_uploader" Width="200" Height="80" Canvas.Left="268" Canvas.Top="105" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="35"/>
<Label Content="密码:" Width="122" Height="80" FontSize="35" Canvas.Left="100" Canvas.Top="230" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
<TextBox x:Name="tb_password" Width="200" Height="80" Canvas.Left="268" Canvas.Top="230" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="35"/>
<Button Content="登录" Width="120" Height="60" FontSize="32" Canvas.Left="100" Canvas.Top="360" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Click="btn_login_Click"/>
<!--<Button Content="修改密码" Width="165" Height="60" FontSize="32" Canvas.Left="305" Canvas.Top="460" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" />-->
</Canvas>
</Canvas>
</UserControl>
注:上面代码xaml是用户控件代码。
最后,在后台代码设置:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using User.sqlHelper;
using System.Data; namespace User
{
/// <summary>
/// uc_login.xaml 的交互逻辑
/// </summary>
public partial class uc_login : UserControl
{
public uc_login()
{
InitializeComponent();
} private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
//获取下拉框用户名字
User_test _u = new User_test();
DataSet _ds = _u.GetList();
if(_ds != null)
{
DataTable _dt = _ds.Tables[];
for (int i = ; i < _dt.Rows.Count; i++)
{
string UserName = _dt.Rows[i]["UserName"].ToString().Trim();
ComboBoxItem cbitem = new ComboBoxItem();
cb_uploader.Items.Add(cbitem);
cbitem.Content = UserName;
}
}
} //登录按钮
private void btn_login_Click(object sender, RoutedEventArgs e)
{
//判断下拉框不为空
if (this.cb_uploader != null)
{
//判断密码不为空
if (this.tb_password != null)
{
string uploader = cb_uploader.Items.
}
//密码为空
else
{ }
}
//下拉框为空
else
{ }
}
}
}
结果:
【WPF学习笔记】之如何设置下拉框读取SqlServer数据库的值:动画系列之(一)的更多相关文章
- JS学习笔记 - fgm练习 - 输入法下拉框 三元表达式
<script> window.onload = function() { var oBtn = document.getElementsByTagName('input')[0]; va ...
- Jquery动态设置下拉框selected --(2018 08/12-08/26周总结)
1.Jquery动态根据内容设置下拉框selected 需求就是根据下拉框的值动态的设置为selected,本以为很简单,网上一大推的方法,挨着尝试了之后却发现没有一个是有用的.网上的做法如下: &l ...
- js 设置下拉框的默认值
设置下拉框的默认值,直接在option中增加selected就可以了.但是现在要使用JS来设置它的默认值,代码如下: <select name="aaa" id=" ...
- jquery 根据后台传过来的值动态设置下拉框、单选框选中
更多内容推荐微信公众号,欢迎关注: jquery 根据后台传过来的值动态设置下拉框.单选框选中 $(function(){ var sex=$("#sex").val(); va ...
- java操作poi生成excel.xlsx(设置下拉框)下载本地和前端下载
需求:导入excel表格,如果excel有错误,将错误的地方标红,在把数据以excel的形式写出,供用户下载解决方案:1.以实体类的方式接收excel并解析(创建两个集合一个接收正常的数据一个接收错误 ...
- jquery设置下拉框selected不起作用
在js中设置下拉框被选中: 最初写法: //移出selected $("#selected option").removeAttr("selected"); / ...
- form表单传递下拉框的Value和Text值,不适用Jquery传递
同时获取下拉框的Value和Text值的解决办法:添加一个<input type="text" >文本框,用户选中一项后就将该项的value值给他 然后接受页面获取该文 ...
- JavaScript获取select下拉框中的第一个值
JavaScript获取select下拉框中的第一个值 1.说明 获取select下拉框中的第一个值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- jq select change下拉框选项变化判断选中值,添加(attr)或移除(removeAttr)一个或多个属性
select change下拉框选项变化判断选中值,添加(attr)或移除(removeAttr)一个或多个属性 $("#IsRecommend").change(function ...
随机推荐
- Ajax 控件 的使用 以及js调用后台方法【自己总结一下】
原文发布时间为:2009-05-16 -- 来源于本人的百度文章 [由搬家工具导入] 源码:http://download.csdn.net/source/1340120 (js调用后台方法只在源 ...
- 【Visual Studio】error c4996: 'fopen': This function or variable may be unsafe(转)
原文转自 http://blog.csdn.net/zhangyuehuan/article/details/12012635 [解决方案]项目 =>属性 =>c/c++ =>预处 ...
- sublime text3 无法安装插件
下载 Package Control.sublime-package 点击这里下载: 打开sublime3 -> 首选项 -> 浏览插件 (程序自动打开插件目录) 删除 Package C ...
- Implement Trie (Prefix Tree) - LeetCode
Implement a trie with insert, search, and startsWith methods. Note:You may assume that all inputs ar ...
- [TJOI2016][HEOI2016]排序
题目大意: 给定一个$1\sim n(n\leq10^5)$的全排列,有$m(m\leq10^5)$次操作,每次把区间$[l,r]$按照升序或降序排序.最后询问所有操作完成后,位置为$q$的数是多少. ...
- python 关键词
一.python关键字 1. and :表示逻辑判断 [与] a = '1' b = 1 if a and b: print('Hello Python') 2.as :单独没有实际意思,常与wi ...
- Swagger2接口注释参数使用数组
allowMultiple = true, paramType = "query", dataType = "string" 输出的就是这样的:Array[st ...
- OpenSSL使用1(用OpenSSL生成自签名证书在IIS上搭建Https站点)(用于iOS的https访问)
前提: 先安装openssl,安装有两种方式,第一种直接下载安装包,装上就可运行:第二种可以自己下载源码,自己编译.这里推荐第一种. 安装包:http://slproweb.com/products/ ...
- 通信API、使用Web Workers处理线程
1.跨文档消息传输 要想接受从其他的窗口那里发过来的消息,就必须对窗口对象的message事件进行监视. w ...
- 【lombok】lombok---帮你简化生成必要但臃肿的java代码工具 【映射注解和lombok注解同时使用 以及 映射注解放在属性和get方法上的区别】
官方地址:https://projectlombok.org/ GitHub:https://github.com/rzwitserloot/lombok 指导说明文档:http://jnb.ociw ...