注册按钮事件:

private void btnRegister_Click(object sender, EventArgs e)
{
string username = txtUserName.Text;
string userpwd = txtUserPwd.Text;
string tel = txtTel.Text;
string email = txtEmail.Text;
string name = txtName.Text;
int dept = Convert.ToInt32(txtDept.Text);
if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(userpwd))
{
MessageBox.Show("用户名和密码不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
string sql = "INSERT INTO [UserInfo]([username],[userpwd],[name],[deptId],[tel],[email],[state],[registerTime],[lastLoginTime],[remark])" +
"VALUES(@username,@userpwd,@name,@deptId,@tel,@email,@state,GETDATE(),GETDATE(),'null')";
SqlParameter[] param =
{
new SqlParameter("@username",SqlDbType.VarChar),
new SqlParameter("@userpwd",SqlDbType.VarChar),
new SqlParameter("@name",SqlDbType.VarChar),
new SqlParameter("@deptId",SqlDbType.Int),
new SqlParameter("@tel",SqlDbType.VarChar),
new SqlParameter("@email",SqlDbType.VarChar),
new SqlParameter("@state",SqlDbType.VarChar)
};
param[0].Value = username;
param[1].Value = userpwd;
param[2].Value = name;
param[3].Value = dept;
param[4].Value = tel;
param[5].Value = email;
param[6].Value = "";
int count = DataManager.Set(sql, param);
if (count > 0)
{
DialogResult dr = MessageBox.Show("注册成功,是否登录?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (dr == DialogResult.OK)
{
FrmLogin login = new FrmLogin();
login.Show();
this.Hide();
}
else
{
this.Show();
}
}
else
{
MessageBox.Show("注册失败!","提示",MessageBoxButtons.AbortRetryIgnore,MessageBoxIcon.Hand);
}
}

调用底层的方法:

DataManager类:

public static int Set(string sql, SqlParameter[] pars)
{
return new DataService().Set(sql, pars);
}

DataService类:

public int Set(string sql, SqlParameter[] pars)
{
Init(sql, pars, SysControl.ConnectionString);
return Set();
}

private int Set()
{
con.Open();
int i = cmd.ExecuteNonQuery();
con.Close();
return i;
}

SysControl类:

/// <summary>
/// 数据库连接字符串
/// </summary>
public static string ConnectionString = ConfigurationManager.AppSettings["connectionString"];

在app配置文件里面添加链接:

<appSettings>
<add key ="connectionString" value="server=.;user id=sa; password=123456; database=db;"/>
</appSettings>

winform注册功能的更多相关文章

  1. Winform 注册机通用软件注册功能之建立有效的软件保护机制

    本文转载:http://www.cnblogs.com/umplatform/archive/2013/01/23/2873001.html 众所周知,一些共享软件往往提供给使用者的是一个功能不受限制 ...

  2. C# 实现软件注册功能

    相信很多初学编程的人都会对这个注册功能很感兴趣,我也不例外,刚学asp.net时,竞找不到这方面的实例,结果自己参考微软的一些文档自己做了一个,其实我做的这个注册功能很简单,读取计算机的CPU序列号, ...

  3. C#Winform 注册使用全局快捷键详解

    C#.NET Winform 注册使用全局快捷键详解 借助于全局快捷键,用户可以在任何地方操控程序,触发对应的功能.但 WinForms 框架并没有提供全局快捷键的功能.想要实现全局快捷键需要跟 Wi ...

  4. python实现软件的注册功能(机器码+注册码机制)

    http://www.cnblogs.com/cquptzzq/p/5940583.html 一.前言: 目的:完成已有python图像处理工具的注册功能 功能:用户运行程序后,通过文件自动检测认证状 ...

  5. springMVC+Java验证码完善注册功能

    这篇文章简单的写了一个java验证码,为之前写过的springMVC注册功能加上验证码,验证码的作用就不多说了,防止机器人程序恶意注册什么的.. 其中User.java,加上了password和cod ...

  6. gitlab 取消注册功能

    gitlab 默认安装完成以后是允许用户注册,公司内部使用所以准备禁用了注册功能,只允许管理员从后台开通权限: 1.进入"Admin Area" 2.在左边菜单栏最低下点击&quo ...

  7. 7、ABPZero系列教程之拼多多卖家工具 修改注册功能

    本篇开始进入重头戏,之前的几篇文章都是为了现在的功能作准备.前面教程已经讲到修改User表结构,接下来就需要修改注册逻辑代码. 注册页面 修改Register.cshtml,备注如下代码: 文件路径: ...

  8. Node.js基础学习四之注册功能

    前言:在Node.js学习(二)和(三)中介绍了如何在Node.js 中获取登录的用户名和密码与数据库进行验证并返回数据给客户端 需求:实现注册功能 为了区分登录和注册是两个不同的请求,在端口后面加上 ...

  9. EasyMall注册功能

    EasyMall注册功能 1. 环境搭建 创建一个EasyMall的web应用 配置www.easymall.com网站,并配置为缺省的虚拟主机,将EasyMall配 置为缺省的web应用,在配置in ...

随机推荐

  1. MySQL--各版本DDL 操作总结

    MySQL 5.5 DDL 在MySQL 5.5版本前,所有DDL操作都使用Copy Table的方式完成,操作过程中原表数据库不允许写入,只能读取,在MySQL 5.5版本中引入FIC(Fast i ...

  2. monkey-----停止正在测试的monkey

    第一步:adb   shell ps | grep monkey:查找到正在测试的monkey包名   第二步:kill   pid:删除查找出的monkey进程   以上完美的停止monkey测试

  3. Spark学习之数据读取与保存总结(一)

    一.动机 我们已经学了很多在 Spark 中对已分发的数据执行的操作.到目前为止,所展示的示例都是从本地集合或者普通文件中进行数据读取和保存的.但有时候,数据量可能大到无法放在一台机器中,这时就需要探 ...

  4. shiro的SecurityUtis

    接着上一篇来继续分析shiro源码 这篇主要讲解shiro里面的SecurityUtils 首先我们看该类供我们在业务中用的仅有两个get方法,那么这两个get方法获取的subject和sercuri ...

  5. 一段简单的显示当前页面FPS的代码

    写前端代码,尤其是做一个前端框架的时候,经常需要及时知道代码的大致性能,这时候如果能有个好的办法能一直看到当前页面的fps就好了. 整体思路是一秒有一千毫秒,先记录当前时间作为最后一次记录fps的时间 ...

  6. 『审慎』.Net4.6 Task 异步函数 比 同步函数 慢5倍 踩坑经历

    异步Task简单介绍 本标题有点 哗众取宠,各位都别介意(不排除个人技术能力问题) —— 接下来:我将会用一个小Demo 把 本文思想阐述清楚. .Net 4.0 就有了 Task 函数 —— 异步编 ...

  7. 数据结构与算法(十):红黑树与TreeMap详细解析

    本文目录 一.为什么要创建红黑树这种数据结构 在上篇我们了解了AVL树,既然已经有了AVL这种平衡的二叉排序树,为什么还要有红黑树呢? AVL树通过定义我们知道要求树中每一个结点的左右子树高度差的绝对 ...

  8. 从后台servlet中,获取jsp页面输入的值,来删除用户一行信息

    后台servlet设置 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws S ...

  9. iOS----------has copy command from(bug修复)

    :-1: Multiple commands produce '/Users/apple/Library/Developer/Xcode/DerivedData/Pic-frfhvoheijeiybf ...

  10. 001-为什么Java能这么流行

    本文首发于公众号:javaadu 典型回答 这种问题比较笼统,如果我遇到这个问题,我会从下面几个点阐述我的观点: Java通过JVM实现了"一次编写,到处运行"的特性,由JVM屏蔽 ...