【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 ...
随机推荐
- 当文字过长时裁剪(显示省略号或只裁剪 用CSS方法,不用程序)
原文发布时间为:2009-09-16 -- 来源于本人的百度文章 [由搬家工具导入] CSS中ellipsis()应用【转】 CSS手册中text-overflow属性的定义: 语法: text- ...
- 网页制作教程:td也可以溢出隐藏显示【转】
原文发布时间为:2010-02-05 -- 来源于本人的百度文章 [由搬家工具导入] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stri ...
- android开发过程遇到的一些错误
Unable to resolve target "android-x" 这是工程的Android版本和本地SDK中的版本不一致,一般做下处理: 1. 右击项目->andro ...
- synchronous interrupt and asynchronous interrupt
Asynchronous interrupt 中斷请求信号来自CM3内核的外面,来自各种片上外设和外扩的外设,对CM3来说是"异步"的: e.g. usb otg device S ...
- python commands 模块
commands 模块 通过python调用系统命令 只适用于linux commands是提供linux系统环境下支持使用shell命令的一个模块 commands.getoutput(cmd) 只 ...
- asp.net core 2.1 将控制器抽离到类库中
startup.cs的ConfigureServices中添加: public void ConfigureServices(IServiceCollection services) { var ma ...
- UVA 11059 Maximum Product【三层暴力枚举起终点】
[题意]:乘积最大的子序列.n∈[1,10],s∈[-10,10] [代码]: #include<bits/stdc++.h> using namespace std; int a[105 ...
- Linux系统日常运维-修改IP地址
分享下高手写的很好的文章 IP地址.子网掩码.网络号.主机号.网络地址.主机地址 step 0: check the iptables.selinux service iptables iptable ...
- Mac下ll、l、la、等简写命令不能使用
Mac默认用的也是Unix系统,Unix系统本身是没有这些简写命令的,可以通过给命令设置别名来使得可以使用这些简写命令 查看本机所有已经设置的命令别名:alias 设置命令别名:alias ll='l ...
- 【2019】问题记录一:后端获取URL参数的值内加号“+”变成空格“ ”
问题:URL参数中加号“+”变成空格“ ” 一.现象 URL如:http://example.****.com/controller/action?param=rice+cook+panda ...