先前条件:设置好数据库,需要三个文件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数据库的值:动画系列之(一)的更多相关文章

  1. JS学习笔记 - fgm练习 - 输入法下拉框 三元表达式

    <script> window.onload = function() { var oBtn = document.getElementsByTagName('input')[0]; va ...

  2. Jquery动态设置下拉框selected --(2018 08/12-08/26周总结)

    1.Jquery动态根据内容设置下拉框selected 需求就是根据下拉框的值动态的设置为selected,本以为很简单,网上一大推的方法,挨着尝试了之后却发现没有一个是有用的.网上的做法如下: &l ...

  3. js 设置下拉框的默认值

    设置下拉框的默认值,直接在option中增加selected就可以了.但是现在要使用JS来设置它的默认值,代码如下: <select name="aaa" id=" ...

  4. jquery 根据后台传过来的值动态设置下拉框、单选框选中

    更多内容推荐微信公众号,欢迎关注: jquery  根据后台传过来的值动态设置下拉框.单选框选中 $(function(){ var sex=$("#sex").val(); va ...

  5. java操作poi生成excel.xlsx(设置下拉框)下载本地和前端下载

    需求:导入excel表格,如果excel有错误,将错误的地方标红,在把数据以excel的形式写出,供用户下载解决方案:1.以实体类的方式接收excel并解析(创建两个集合一个接收正常的数据一个接收错误 ...

  6. jquery设置下拉框selected不起作用

    在js中设置下拉框被选中: 最初写法: //移出selected $("#selected option").removeAttr("selected"); / ...

  7. form表单传递下拉框的Value和Text值,不适用Jquery传递

    同时获取下拉框的Value和Text值的解决办法:添加一个<input type="text" >文本框,用户选中一项后就将该项的value值给他 然后接受页面获取该文 ...

  8. JavaScript获取select下拉框中的第一个值

    JavaScript获取select下拉框中的第一个值 1.说明 获取select下拉框中的第一个值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  9. jq select change下拉框选项变化判断选中值,添加(attr)或移除(removeAttr)一个或多个属性

    select change下拉框选项变化判断选中值,添加(attr)或移除(removeAttr)一个或多个属性 $("#IsRecommend").change(function ...

随机推荐

  1. 19年的桌面KDE的风雨和陪伴,没有什么能够割舍

    概述 KDE是史上功能最强大的桌面环境之一:开源且可自由使用.19年前,1996年10月14日,德国程序员 Matthias Ettrich 开始了这个美观的桌面环境的开发.KDE 提供了用户界面以及 ...

  2. hdu 4956(思路题)

    Poor Hanamichi Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. BZOJ 3083 遥远的国度 (换根讨论 + 树链剖分)

    题目链接  BZOJ3083 换根不能真正地换. 令当前的根为$cnt$,要查找的子树根为$x$ $1$.$x = cnt$,那么要查找的区域就是整棵树. $2$.$x$在以$cnt$为根的子树内,那 ...

  4. 全局变量 全局函数vue 方法

    定义全局变量 原理: 设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用export default 暴露出去,在main.js里面使用Vue.prototype挂载到vue实例上面或 ...

  5. luogu P1854 花店橱窗布置

    题目描述 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V是花瓶的数目.花束可以移动,并且每束花用1到F的整数标识 ...

  6. 2016集训测试赛(二十六)Problem A: bar

    Solution 首先审清题意, 这里要求的是子串而不是子序列... 我们考虑用1表示p, -1表示j. 用sum[i]表示字符串前\(i\)的前缀和. 则我们考虑一个字符串\([L, R]\)有什么 ...

  7. 《Microsoft SQL Server 2008 Internals》读书笔记--目录索引

    http://blog.csdn.net/downmoon/article/details/5256548 https://sqlserverinternals.com/companion/

  8. Beginning Auto Layout Tutorial in iOS 7: Part 3

    How Auto Layout works 在使用auto layout之前,你可能总是使用initWithFrame或者frame, bounds or center属性. 使用约束的好处在于你不需 ...

  9. Your build settings specify a provisioning profile with the UUID, no provisioning profile was

    http://blog.csdn.net/rbyyyblog/article/details/12220875 在Archive项目时,出现了“Your build settings specify ...

  10. CentOS 挂载NTFS分区的两种方法

    第一种是安装内核模块,可到 http://sourceforge.net/projects/linux-ntfs/files/ 下载,需下载与你系统内核想对应的版本,使用uname -a 查看当前内核 ...