(应博友们的需要,在文章评论处有源码链接地址,以及WPF学习资料、工具等,希望对大家有所帮助)

......

承接系列五

上一节讲了,已经把数据保存到数据库并且删除数据,本讲是把已经存在的数据从数据库里读取出来,显示在页面上。

主页面后台代码:

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 System.Data.SqlClient;
using User.sqlHelper;
using System.Data;
using System.IO;
using System.Drawing; namespace User
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
} string ss = "";
public static string name = "";
int id = ;
public int usergrade = ; private void Window_Loaded(object sender, RoutedEventArgs e)
{
myHelper.showWarnMessage += new myHelper.ShowWarnMessage(myHelper_showWarnMessage);
} //传递登录界面的用户名
User_test _u = new User_test();
void myHelper_showWarnMessage(string _str)
{
//获取用户名
string _msg = _str;
//传递名字到主页面
name = tb_name.Text = _msg;
//根据用户名得到权限
usergrade = _u.getUserGrade(tb_name.Text);

       //从这里开始
//申请者权限
if (usergrade == )
{
//根据我登录的用户名和id,把word表的信息读取出来
//查询User表获取用户名和id
DataSet _ds = _u.GetList();
if(_ds != null)
{
DataTable _dt = _ds.Tables[];
for (int i = ; i < _dt.Rows.Count; i++)
{
int userid = int.Parse(_dt.Rows[i]["UserID"].ToString().Trim());
string username = _dt.Rows[i]["UserName"].ToString().Trim();
//如果画面登录的用户名与user表的名字一致,则取出表里的id
if (tb_name.Text.Equals(username))
{
id = userid;
}
}
} Word _w = new Word();
_ds = _w.GetList();
if(_ds != null)
{
DataTable _dt = _ds.Tables[];
for (int i = ; i < _dt.Rows.Count; i++)
{
int submitterid = int.Parse(_dt.Rows[i]["SubmitterID"].ToString().Trim());
//如果word表取出的id与user表id一致,则把word表里的数据都取出来
if (id.Equals(submitterid))
{
//初始化用户控件2的属性,然后一一赋值
uc_item item = new uc_item();
item.loadCombobox();
sp_1.Children.Add(item);
Canvas.SetLeft(item, ); //编号
ss = item.tb_id.Text = _dt.Rows[i]["WordID"].ToString().Trim();
//提交人
item.tb_uploader.Text = _u.getUserName(int.Parse(_dt.Rows[i]["WordID"].ToString().Trim()));
//当前状态
item.cb_type2.Text = _dt.Rows[i]["CurrentStatus"].ToString().Trim();
//提交状态
item.cb_type.Text = _dt.Rows[i]["SubmitStatus"].ToString().Trim();
//内容
item.tb_describe.Text = _dt.Rows[i]["WordDescribe"].ToString().Trim();
//提交日期
item.dp_date.Text = _dt.Rows[i]["SubmitTime"].ToString().Trim();
//最后更新时间
item.dp_date2.Text = _dt.Rows[i]["LastTime"].ToString().Trim(); //设置数据显示条的高度
sp_1.Height = Math.Max(sp_1.Children.Count * , ); }
}
}
}
       //到这里结束
//审批者权限
else if (usergrade == )
{ }
//执行者权限
else if (usergrade == )
{ }
} public static bool isnew = false; //新建时嵌套另一个用户控件2在主页面上
private void btn_new_Click(object sender, RoutedEventArgs e)
{
isnew = true;
//新建
uc_item _ucItem = new uc_item();
//设置号码初始化
//编号
_ucItem.tb_id.Text = "";
//登录人
_ucItem.tb_uploader.Text = this.tb_name.Text;
//当前状态
_ucItem.cb_type2.Text = "未";
//审批状态
_ucItem.loadCombobox(); //初始化信息添加到新建中
sp_1.Children.Add(_ucItem);
Canvas.SetLeft(_ucItem, );
sp_1.Height = Math.Max(sp_1.Children.Count * ,); } private void btn_nosolve_Click(object sender, RoutedEventArgs e)
{ } private void btn_solve_Click(object sender, RoutedEventArgs e)
{ } private void btn_back_Click(object sender, RoutedEventArgs e)
{
sp_1.Children.Clear();
my_uc_login.showLogin();
} internal static void VisibilityProperty()
{
throw new NotImplementedException();
}
}
}

结果图:

点击登录后上一次保存的数据就显示出来了。

【WPF学习笔记】之如何把数据库里的值读取出来然后显示在页面上:动画系列之(六)(评论处有学习资料及源码)的更多相关文章

  1. JSP读取Oracle数据库里的图片Blob字段并显示在页面上

    1.java代码: /** * 打印模板获取电子签名 * @param request * @param resp * @param id * @return * @throws Exception ...

  2. golang学习笔记16 beego orm 数据库操作

    golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...

  3. WPF-学习笔记 动态修改控件Margin的值

    原文:WPF-学习笔记 动态修改控件Margin的值 举例说明:动态添加一个TextBox到Grid中,并设置它的Margin: TextBox text = new TextBox(); t_gri ...

  4. JavaWeb和WebGIS学习笔记(四)——使用uDig美化地图,并叠加显示多个图层

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  5. C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

    一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...

  6. C#学习笔记(基础知识回顾)之值传递和引用传递

    一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...

  7. C#学习笔记(基础知识回顾)之值类型和引用类型

    一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...

  8. Android学习笔记(十七)——数据库操作(下)

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 这一次我们来试一试升级数据库,并进行数据库的CRUD操作,其中, C 代表添加(Create) ,R 代表查询 ...

  9. SQL server2005学习笔记(一)数据库的基本知识、基本操作(分离、脱机、收缩、备份、还原、附加)和基本语法

    在软件测试中,数据库是必备知识,假期闲里偷忙,整理了一点学习笔记,共同探讨. 阅读目录 基本知识 数据库发展史 数据库名词 SQL组成 基本操作 登录数据库操作 数据库远程连接操作 数据库分离操作 数 ...

随机推荐

  1. hdu 5952 Counting Cliques 求图中指定大小的团的个数 暴搜

    题目链接 题意 给定一个\(n个点,m条边\)的无向图,找出其中大小为\(s\)的完全图个数\((n\leq 100,m\leq 1000,s\leq 10)\). 思路 暴搜. 搜索的时候判断要加进 ...

  2. C++ 求幂的运算符是什么?

    1.VB里面求幂的运算符是“^” 2.C++没有求幂的运算符, c++头文件加 #include<math.h>使用pow(x,y),可算出x的y次幂 3.C++中 “^”是按位“异或”运 ...

  3. python第三方库安装和卸载

    库的安装与卸载 pip install requests pip uninstall requests 查看安装好的库 pip list   第三方库的各种安装方式如下: 一.包管理器 Python有 ...

  4. 解决 Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程序中文标点输入无效的方法

    Mac OS X 下基于 Java 的程序(如 IntelliJ IDEA.jEdit 等)会出现中文标点输入无效的问题,在中文输入法状态,可以输入中文字,但输入中文标点最后上去的是英文标点.查阅了相 ...

  5. LeetCode OJ--Palindrome Number

    https://oj.leetcode.com/problems/palindrome-number/ 判断是否为回文数 取每一位存到vector中,再判断 负数不是回文数 class Solutio ...

  6. Codeforces Gym100971 B.Derangement (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)

    昨天训练打的Gym,今天写题解. 这个题就是输出的时候有点小问题,其他的都很简单. 代码: #include<iostream> #include<cstring> #incl ...

  7. 在Linux 双机下自己手动实现浮动ip技术

    两台Linux服务器,一台为主机(IP:124.158.26.30)对外提供了一定的网络服务,另一台从机(IP:124.158.26.31)能提供相同的服务,但ip地址没有对外部公开客户端连接的都是1 ...

  8. List与set

    1,List与set的区别? List:元素是有序的,元素可以重复,因为集合体系有索引 set:元素是无序的,元素不可以重复,集合体系没有索引 2,list里面特有的方法: 在制定的位置添加元素add ...

  9. path.join 与 path.resolve 的区别

    1. 对于以/开始的路径片段,path.join只是简单的将该路径片段进行拼接,而path.resolve将以/开始的路径片段作为根目录,在此之前的路径将会被丢弃,就像是在terminal中使用cd命 ...

  10. mysql-实现远程连接(授权法)

    远程连接阿里云主机的mysql,遇到以下问题: 1.连接被拒,无法连接 可能原因:1.3306(默认)端口未开放,在控制台设置防火墙规则: 2. host字段的值改为%就表示在任何客户端机器上能以ro ...