精华内容
下载资源
问答
  • winform和sql实例
    2022-05-27 09:26:44

    1,数据查询

          //查询全部
            private void QueryAllCourse()
            {
                //数据库连接串
                string connStr = "Data Source=.;Initial Catalog=test;User ID=sa;Password=123456";
                //创建SqlConnection的实例
                SqlConnection conn = null;
                try
                {
                    conn = new SqlConnection(connStr);
                    //打开数据库
                    conn.Open();
            string sql = "select ID ,AXIS_NAME ,HOME_LOWSPEED ,HOME_HIGHSPEED , HOME_OFFSETPOS  ,HOME_ACCTIME ,HOME_DECTIME ,MAX_LIMIT ," +
                "MIN_LIMIT , EQUIVALENT ,START_SPEED ,MAX_SPEED ,END_SPEED ,ACC_TIME , DEC_TIME from Axis_table";
                    //创建SqlDataAdapter类的对象
                    SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
                    //创建DataSet类的对象
                    DataSet ds = new DataSet();
                    //使用SqlDataAdapter对象sda将查新结果填充到DataSet对象ds中
                    sda.Fill(ds);
                    //设置表格控件的DataSource属性
                    dataGridView1.DataSource = ds.Tables[0];
                    //设置数据表格上显示的列标题
                    //dataGridView1.Columns[13].HeaderText = "轴名称";
                    dataGridView1.Columns[1].HeaderText = "轴名称";
                    dataGridView1.Columns[2].HeaderText = "回零起始速度(mm/s)";
                    dataGridView1.Columns[3].HeaderText = "回零运行速度(mm/s)";
                    dataGridView1.Columns[4].HeaderText = "回零开关偏差";
                    dataGridView1.Columns[5].HeaderText = "回零加速时间(s)";
                    dataGridView1.Columns[6].HeaderText = "回零减速时间(s)";
                    dataGridView1.Columns[7].HeaderText = "最大软件限位";
                    dataGridView1.Columns[8].HeaderText = "最小软件限位";
                    dataGridView1.Columns[9].HeaderText = "脉冲当量";
                    dataGridView1.Columns[10].HeaderText = "初始速度(mm/s)";
                    dataGridView1.Columns[11].HeaderText = "定位速度(mm/s)";
                    dataGridView1.Columns[12].HeaderText = "终止速度(mm/s)";
                    dataGridView1.Columns[13].HeaderText = "加速时间(s)";
                    dataGridView1.Columns[14].HeaderText = "减速时间(s)";


                    dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("隶书", 14);
                    //foreach (DataGridViewColumn column in dataGridView1.Columns)
                    //{
                    //    column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
                    //}
                    //设置数据表格为只读
                    dataGridView1.ReadOnly = true;
                    //不允许添加行
                    dataGridView1.AllowUserToAddRows = false;
                    //背景为白色
                    dataGridView1.BackgroundColor = Color.White;
                    //只允许选中单行
                    dataGridView1.MultiSelect = false;
                    //整行选中
                    dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                    dataGridView1.DefaultCellStyle.Font = new Font("隶书", 14);

                    //  this.dataGridView1.Rows[0].Selected = true;//默认选中第一行
                }
                catch (Exception ex)
                {
                    MessageBox.Show("查询错误!" + ex.Message);
                }
                finally
                {
                    if (conn != null)
                    {
                        //关闭数据库连接
                        conn.Close();
                    }
                }
            }

       //数据库连接串
                string connStr = "Data Source=.;Initial Catalog=test;User ID=sa;Password=123456";
                //创建SqlConnection的实例
                SqlConnection sqlCnn = null;

                try
                {
                    sqlCnn = new SqlConnection(connStr);
                    //打开数据库
                    sqlCnn.Open();
                    tag = true;


                    string sql = "select *  from signalOut_tab";

                    //创建数据库命令
                    SqlCommand cmd = sqlCnn.CreateCommand();
                    //创建查询语句
                    cmd.CommandText = sql;
                    //从数据库中读取数据流存入reader中
                    SqlDataReader reader = cmd.ExecuteReader();


                    //从reader中读取下一行数据,如果没有数据,reader.Read()返回flase
                    while (reader.Read())
                    {

                        string signal = reader.GetString(reader.GetOrdinal("signal"));
                        string id = reader.GetString(reader.GetOrdinal("id"));


                        //格式输出数据
                        Console.WriteLine("signal:{0}==id:{1}", signal, id);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "error");
                }
                finally {
                    sqlCnn.Close();
                }

    更多相关内容
  • 内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...
  • 本系统使用winform的绑定机制应用以上模板及对应数据表(视图)实现动态代码生成后续需要做的工作就是应用winform开发自带的数据源方法或者devexpress的datalayoutcontrol方法来拖拽对应的控件展示数据的gridcontrol...
  • Linq操作SQL.zip不错的C#WinForm实例源码适合研究学习技术Linq操作SQL.zip不错的C#WinForm实例源码适合研究学习技术 1.适合学生做毕业设计参考模板。 2.适合程序员学习开发研究用 3.适合小公司做项目参考技术使用用
  • 触发器SQL文件.zip不错的C#WinForm实例源码适合研究学习技术触发器SQL文件.zip不错的C#WinForm实例源码适合研究学习技术 1.适合学生做毕业设计参考模板。 2.适合程序员学习开发研究用 3.适合小公司做项目参考技术...
  • winform多层架构实例

    2019-04-21 15:46:28
    多层架构学习时使用最佳,建议认真阅读实现过程,内附数据库
  • //执行SQL语句 //CommandBehavior.CloseConnection 断开链接 if (dr.Read()) //判断 { username = textBox1.Text; userpassword = textBox2.Text; //一旦连接成功了就弹出窗口 MessageBox.Show("登录成功!", "登录...

    一个简单的登录页面

    private void NewMethod()
            {
                //获取文本框中的值
                username = this.textBox1.Text.Trim();
                userpassword = this.textBox2.Text.Trim();

                if (username.Equals("") || userpassword.Equals(""))//用户名或密码为空
                {
                    MessageBox.Show("用户名或密码不能为空");
                    return;
                }
                else//用户名或密码不为空
                {   
                                    //到数据库中验证
                    SqlConnection mycon = new SqlConnection(@"Server=服务器名称;Database=数据库名;user id=用户名;pwd=密码");

                    mycon.Open();         //建立连接 
                 
                    SqlCommand com = new SqlCommand(); 
                    com.Connection = mycon;
                    com.CommandType = CommandType.Text;
                    com.CommandText = "select * from [表名] where username='" + this.textBox1.Text + "'and userpassword='" + this.textBox2.Text + "'";
                    SqlDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection);//执行SQL语句
                    //CommandBehavior.CloseConnection 断开链接
                    
                    if (dr.Read())         //判断
                    {
                        username  = textBox1.Text;
                        userpassword = textBox2.Text;
                        //一旦连接成功了就弹出窗口
                        MessageBox.Show("登录成功!", "登录提示", MessageBoxButtons.OK);

                    }
                    else
                    {
                        //信息错误,判断条件不成立
                        MessageBox.Show("密码错误", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    mycon.Close();     //关闭链接

     

     

                }
                Form f2 = new FormMain(); //跳转

                this.Hide();

                f2.ShowDialog();

                this.Dispose();

            }

     

     

     

     

     

     

     

     

    展开全文
  • using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; 路径大概是:C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies 只要安装了SQL2008就行,具体百度。 ...

    需要用到2个引用:

    using Microsoft.SqlServer.Management.Common;
    using Microsoft.SqlServer.Management.Smo;

    路径大概是:C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies

    只要安装了SQL2008就行,具体百度。

    http://download.csdn.net/download/qq_24554581/10040426

    如果实在找不着,又没积分下载的话,用ADO.NET分段吧...

    这是直接把sql脚本的语句挂到数据库中运行,ADO.NET有很多限制,又因为数据库导出的脚本又基本中枪,所以只能乳此了。

    首先,界面长这样:

    弄成这样不难...随便搞搞就行...就不放代码了。

    时间是为了提示用户程序没挂掉,别乱点。。。

    构建数据库语句,目标字符串:

    这是手动拼接的

    
    CREATE DATABASE 数据库名
    ON
    (
        NAME = '数据库名_data',
        FILENAME = 'D:\SQL\数据库名_data.mdf',
        SIZE = 5MB,
        MAXSIZE=5,
        FILEGROWTH = 20
    )
    LOG ON
    (
        NAME = '数据库名_log',
        FILENAME = 'D:\SQL\数据库名_log.ldf',
        SIZE = 2MB,
        MAXSIZE=20,
        FILEGROWTH = 1MB
    );
     

    注意事项:
    眼号啊,逗号啊,括号啊全都不能省

    直接上代码:

    注释已经说的很明白了,就不罗嗦了,按照代码调整好界面控件的name属性就能用了,

       ManualResetEvent ManualEvent;
            public string _SqlFile = Directory.GetCurrentDirectory();//获取应用程序的当前工作目录
            public MainForm()
            {
                InitializeComponent();
     
                //初始化界面
                try
                {
                    if (string.IsNullOrWhiteSpace(DbHelp.ConnStr))
                    {
                        MessageShow("未找到数据库连接字符串", "初始化出错", MessageBoxIcon.Question);
                        return;
                    }
                    String[] config = DbHelp.ConnStr.Split(';');
                    Service.Text = config[0].Split('=')[1];
                    DbName.Text = config[1].Split('=')[1];
                    UserName.Text = config[2].Split('=')[1];
                    Password.Text = config[3].Split('=')[1];
                }
                catch (Exception ex)
                {
                    MessageShow(ex.Message, "获取配置数据失败", MessageBoxIcon.Stop);
                    return;
                }
            }
     
            /// <summary>
            /// 安装库
            /// </summary>
            private void CreateDbBtn_Click(object sender, EventArgs e)
            {
                IsEnabled(false);
                ManualEvent = new ManualResetEvent(false);
                ThreadPool.QueueUserWorkItem(ThreadCreate, ManualEvent);//由线程池管理
                msg.Visible = true;
                ManualEvent.WaitOne();//无限等待
                msg.Visible = false;
                ManualEvent = null;
                //IsEnabled(true);
            }
     
            /// <summary>
            /// 安装库线程
            /// </summary>
            private void ThreadCreate(object objEvent)
            {
                string masterstr = GetConnStr();//连接字符串
                if (string.IsNullOrWhiteSpace(masterstr))//判空
                {
                    MessageShow("请填完整", "创建失败", MessageBoxIcon.Information);
                    return;
                }
                try
                {
                    #region 检查数据
                    if (!TestConnDb(masterstr))//判断
                    {
                        MessageShow("数据库已存在", "创建失败", MessageBoxIcon.Warning);
                        return;
                    }
                    DirectoryInfo folder = new DirectoryInfo(_SqlFile);
                    FileInfo[] fileInfos = folder.GetFiles("*.sql");//检索所有文件
                    if (fileInfos.Length != 1)//脚本判断
                    {
                        MessageShow("未找到或有多个数据库脚本", "创建失败", MessageBoxIcon.Warning);
                        return;
                    }
                    string Sqlpath = _SqlFile + @"\" + fileInfos[0].Name;//脚本物理路径
                    string dbname = DbName.Text.Trim();//数据库名
                    string sqlcon = masterstr.Replace(";database=master;", ";database=" + dbname + ";");//连接字符串
                    string dbpath = DbPath.Text.Trim();//安装路径
                    string sqlstr = SQLCreate(Sqlpath);//读取数据库脚本语句
                    if (string.IsNullOrWhiteSpace(sqlstr))
                        return;
                    #endregion
     
                    #region 创建
                    StringBuilder sb = new StringBuilder();//创建库脚本
                    sb.Append("CREATE DATABASE " + dbname + @" ON ");
                    sb.Append("(NAME='" + dbname + @"_data',FILENAME='" + dbpath + @"\" + dbname);
                    sb.Append(@"_data.mdf',size=3," + @"FILEGROWTH = 10%)");
                    sb.Append(@"LOG ON(NAME='" + dbname + @"_log',FILENAME='" + dbpath + @"\" + dbname);
                    sb.Append(@"_log.ldf',size=3," + @"FILEGROWTH = 10%);");
                    if (!Directory.Exists(dbpath))//创建文件夹
                    {
                        Directory.CreateDirectory(dbpath);
                    }
                    DbHelp.ExecNonQuery(sb.ToString(), masterstr);//创建库
                    DbHelp.SqlServer(sqlstr, sqlcon);//运行库脚本
                    //DbHelp.ExecNonQuery(sqlstr, sqlcon);
                    #endregion
                    //UpAppconfig("ConnectionString", sqlcon);
                    //UpWebconfig("ConnectionString", sqlcon);
                    MessageShow("创建成功", "创建数据库", MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    LogFile(ex.Message);
                    MessageShow(ex.Message, "创建失败", MessageBoxIcon.Error);
                }
                finally
                {
                    ((ManualResetEvent)objEvent).Set();//线程结束
                }
            }
     
            /// <summary>
            /// 拼接数据库语句
            /// </summary>
            private string SQLCreate(string Sqlpath)
            {
                try
                {
                    string sqlstr = string.Empty;
                    using (FileStream fsr = new FileStream(Sqlpath, FileMode.Open, FileAccess.Read))//读
                    {
                        StreamReader sr = new StreamReader(fsr, Encoding.Default);
                        sqlstr = sr.ReadToEnd();//将脚本原有数据全部读出
                        sr.Close();
                    }
                    //判断
                    CompareInfo Compare = CultureInfo.InvariantCulture.CompareInfo;
                    int cnum = Compare.IndexOf(sqlstr, "CREATE DATABASE ", CompareOptions.IgnoreCase);
                    if (cnum >= 0)
                    {
                        MessageShow("请先把脚本中的创建和USE GO语句删除", "数据库脚本异常", MessageBoxIcon.Warning);
                        return "";
                    }
                    return sqlstr;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
     
            /// <summary>
            /// 测试连接
            /// </summary>
            private void TestDbBtn_Click(object sender, EventArgs e)
            {
                IsEnabled(false);
                ManualEvent = new ManualResetEvent(false);
                ThreadPool.QueueUserWorkItem(ThreadTest, ManualEvent);//由线程池管理
                msg.Visible = true;
                ManualEvent.WaitOne();//无限等待
                msg.Visible = false;
                ManualEvent = null;
                //IsEnabled(true);
            }
     
            /// <summary>
            /// 测试连接线程
            /// </summary>
            private void ThreadTest(object objEvent)
            {
                string connstr = GetConnStr();
                try
                {
                    if (!string.IsNullOrWhiteSpace(connstr))
                    {
                        if (TestConnDb(connstr))
                        {
                            MessageShow("可以开始创建数据库", "测试成功", MessageBoxIcon.Asterisk);
                        }
                        else
                            MessageShow("数据库重名", "测试失败", MessageBoxIcon.Warning);
                    }
                }
                catch (Exception ex)
                {
                    MessageShow(ex.Message, "获取数据库实例失败", MessageBoxIcon.Error);
                }
                finally
                {
                    ((ManualResetEvent)objEvent).Set();//线程结束
                }
            }
     
            /// <summary>
            /// 判断是否能连接数据库和重名
            /// </summary>
            private bool TestConnDb(string connstr)
            {
                try
                {
                    StringBuilder DBlist = new StringBuilder();
                    DataTable dt = DbHelp.Query("select name from master..sysdatabases", connstr).Tables[0];//获取所有库
                    foreach (DataRow row in dt.Rows)
                    {
                        DBlist.Append(row["name"].ToString() + "\r\n");
                    }
                    string dbname = DbName.Text.Trim();
                    if (DBlist.ToString().IndexOf(dbname) <= 0 && !(dbname.Equals("master", StringComparison.OrdinalIgnoreCase)))//重名判断
                    {
                        return true;
                    }
                    else
                        return false;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
     
            /// <summary>
            /// 获取连接字符串
            /// </summary>
            private string GetConnStr()
            {
                string service = Service.Text.Trim();
                string dabane = DbName.Text.Trim();
                string username = UserName.Text.Trim();
                string password = Password.Text.Trim();
                if (string.IsNullOrWhiteSpace(service) || string.IsNullOrWhiteSpace(dabane)
                  || string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))
                {
                    MessageShow("请将信息填完整", "操作停止", MessageBoxIcon.Warning);
                    return "";
                }
                return "server=" + service + ";database=master;uid=" + username + ";pwd=" + password;
            }
     
            /// <summary>
            /// 是否能操作控件
            /// </summary>
            private void IsEnabled(bool istrue)
            {
                if (istrue)
                {
                    Invoke((Action)(() =>
                    {
                        //Enabled = true;
                        TestDbBtn.Enabled = true;
                        CreateDbBtn.Enabled = true;
                        DbPath.Enabled = true;
                        UserName.Enabled = true;
                        Service.Enabled = true;
                        Password.Enabled = true;
                        DbName.Enabled = true;
                        DbPath.Enabled = true;
                        PathBtn.Enabled = true;
                    }));
                }
                else
                {
                    Invoke((Action)(() =>
                    {
                        //Enabled = false;
                        TestDbBtn.Enabled = false;
                        CreateDbBtn.Enabled = false;
                        DbPath.Enabled = false;
                        UserName.Enabled = false;
                        Service.Enabled = false;
                        Password.Enabled = false;
                        DbName.Enabled = false;
                        DbPath.Enabled = false;
                        PathBtn.Enabled = false;
                    }));
                }
            }
     
            /// <summary>
            /// 日志文件
            /// </summary>
            public void LogFile(string Error)
            {
                string logfile = Application.StartupPath + @"\" + DateTime.Now.ToString("yyyy-MM-dd") + " Log.txt";
                try
                {
                    if (File.Exists(logfile))
                    {
                        FileStream fs = new FileStream(logfile, FileMode.Open, FileAccess.Write);//存在
                        StreamWriter sw = new StreamWriter(fs);
                        long fl = fs.Length;//获取文本字符长度
                        fs.Seek(fl, SeekOrigin.Begin);//定位开始位置
                        sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + Error);//开始写入值
                        sw.Close();
                        fs.Close();
                    }
                    else
                    {
                        FileStream fs = new FileStream(logfile, FileMode.Create, FileAccess.Write);//不存在
                        StreamWriter sw = new StreamWriter(fs);
                        long fl = fs.Length;//获取文本字符长度
                        fs.Seek(fl, SeekOrigin.End);//定位末尾位置
                        sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + Error);//开始写入值
                        sw.Close();
                        fs.Close();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
     
            /// <summary>
            /// 选择数据库安装路径
            /// </summary>
            private void PathBtn_Click(object sender, EventArgs e)
            {
                FolderBrowserDialog path = new FolderBrowserDialog();
                path.ShowDialog();
                if (path.SelectedPath.Trim() == "")
                    return;
                DbPath.Text = path.SelectedPath;
            }
     
            /// <summary>
            /// 弹窗提示
            /// </summary>
            private void MessageShow(string msg, string title, MessageBoxIcon boxIcon)
            {
                //为防阻塞,多线程弹出提示框
                new Thread(() => { MessageBox.Show(msg, title, MessageBoxButtons.OK, boxIcon); IsEnabled(true); }).Start();
                //MessageBox.Show(msg, title, MessageBoxButtons.OK, boxIcon);
            }
     
            /// <summary>
            /// 时间
            /// </summary>
            private void TipTimer_Elapsed(object sender, ElapsedEventArgs e)
            {
                
                TimeLabel.Text= DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                TimeLabel.Update();
            }
     

    数据库操作代码:

    用了个静态类来放

      public static string ConnStr = ConfigurationManager.AppSettings["ConnectionString"];
     
            /// <summary>
            /// 执行一条SQL语句,返回影响行数,可选库
            /// </summary>
            public static int ExecNonQuery(string strSql, string con)
            {
                try
                {
                    int iResult = 0;
                    using (SqlConnection cn = new SqlConnection(con))
                    {
                        SqlCommand sqlCmd = new SqlCommand();
                        sqlCmd.Connection = cn;
                        sqlCmd.CommandTimeout = 300;
                        sqlCmd.CommandText = strSql;
                        cn.Open();
                        iResult = sqlCmd.ExecuteNonQuery();
                    }
                    return iResult;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
     
            /// <summary>
            /// 执行查询语句,返回DataSet
            /// </summary>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataSet</returns>
            public static DataSet Query(string SQLString, string Conn)
            {
                using (SqlConnection connection = new SqlConnection(Conn))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        connection.Open();
                        SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                        command.Fill(ds);
                        return ds;
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }
     
            /// <summary>
            /// 运行sql脚本文件
            /// </summary>
            public static void SqlServer(string sqlstr, string con)
            {
                try
                {
                    SqlConnection sqlcon = new SqlConnection(con);
                    Server server = new Server(new ServerConnection(sqlcon));
                    server.ConnectionContext.ExecuteNonQuery(sqlstr);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
     
            }
     

     

    可以加上进度条,我做的进度条是个水货,没监听线程进行情况,就自个在那跑,

    99%卡住后等待运行完关掉,就不贴出来了。。。

    end.

    ————————————————
    版权声明:本文为CSDN博主「浮光-掠影」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_24554581/article/details/78352728

    展开全文
  • Winform多线程处理实例源码 一、源码描述 1、我们在用C# 开发程序时,经常会使用的多线程,实现多任务的处理。一般常用的方法是新建多个线程,进行处理。 2、今天我分享一个采用线程池的方式来实现的实例。对有...
  • C#winForm连接SQL Server,创建登录窗口,用户注册窗口 用到的工具:VS2015,SQL Server 数据表userinfo:(直接复制在SQL Server新建查询中即可) GO /****** Object: Table [dbo].[userinfo] Script Date: 2020/10...

    C#winForm连接SQL Server,创建登录窗口,用户注册窗口

    用到的工具:VS2015,SQL Server
    数据表userinfo:(直接复制在SQL Server新建查询中即可)

    GO
    
    /****** Object:  Table [dbo].[userinfo]    Script Date: 2020/10/14 18:46:58 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE TABLE [dbo].[userinfo](
    	[id] [nvarchar](40) NOT NULL,
    	[name] [nvarchar](50) NOT NULL,
    	[pwd] [nvarchar](50) NOT NULL,
    	[role] [nvarchar](20) NOT NULL,
     CONSTRAINT [PK_userinfo] PRIMARY KEY CLUSTERED 
    (
    	[id] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    GO
    

    登录界面FrmLogin:image-20201014184752523,注册界面:image-20201014184821036

    操作数据表的类Userinfo:

    Userinfo.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data;
    using System.Data.SqlClient;
    using DBConn;
    
    namespace 注册.Class
    {
        /// <summary>
        /// 该类包含两个个方法
        /// 用户登录,用户注册
        /// </summary>
        class Userinfo
        {
            /// <summary>
            /// 登录方法
            /// </summary>
            /// <param name="user_id">用户名</param>
            /// <param name="user_pwd">用户密码</param>
            /// <returns></returns>
            public string Login(string user_id,string user_pwd)
            {
                //创建连接
                SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();//快速构建连接SQL字符串
                scsb.DataSource = "127.0.0.1";//本机名,可以是127.0.0.1或.或本机计算机名
                scsb.UserID = "sa";//数据库登录名
                scsb.Password = "123";//数据库登录密码
                scsb.InitialCatalog = "Apexbio";//要连接的数据库名
                SqlConnection conn = new SqlConnection(scsb.ToString());//实例化连接SQL数据库的类的对象
                if (conn.State==ConnectionState.Closed)
                {
                conn.Open();
                }
    
                //拼接T-SQL语句
                string sqlStr = "SELECT * FROM userinfo WHERE id='" + user_id + "'AND pwd='" + user_pwd + "'";
                SqlCommand comm = new SqlCommand(sqlStr,conn);//实例化SQLCommand对象
                SqlDataReader dr = comm.ExecuteReader();//执行SQL语句,并接收返回受影响的行数
                if (dr.Read())  //如果行数大于0,则说明用户名和密码没问题
                {
                    dr.Close();
                    conn.Close();
                    return null;
                }
                else
                {
                    dr.Close();
                    conn.Close();
                    return "用户名或密码错误";
                }
    
            }
    
            /// <summary>
            /// 注册用户
            /// </summary>
            /// <param name="user_id">用户id</param>
            /// <param name="user_pwd">用户密码</param>
            /// <param name="user_name">用户名</param>
            /// <param name="user_group">用户权限</param>
            /// <returns></returns>
            public string Register(string user_id, string user_pwd, string user_name,string user_group)
            {
                //创建SQL连接
                SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();//快速构建连接SQL字符串
                scsb.DataSource = "127.0.0.1";//本机名,可以是127.0.0.1或.或本机计算机名
                scsb.UserID = "sa";//数据库登录名
                scsb.Password = "123";//数据库登录密码
                scsb.InitialCatalog = "Apexbio";//要连接的数据库名
                SqlConnection conn = new SqlConnection(scsb.ToString());//实例化连接SQL数据库的类的对象
                if (conn.State==ConnectionState.Closed)
                {
                conn.Open();
                }      
                //拼接T-SQL语句
                string strSQL = @"INSERT INTO [dbo].[userinfo]
                                           ([id]
                                           ,[name]
                                           ,[pwd]
                                           ,[role])
                                     VALUES
                                           ('"+user_id+@"'
                                           ,'"+user_name+@"'
                                           ,'"+user_pwd+@"'
                                           ,'"+user_group+"')";
                SqlCommand comm = new SqlCommand(strSQL, conn);//实例化SQLcommand对象
                try
                {
                    comm.ExecuteNonQuery();//执行SQL语句
                    return "注册成功";
                }
                catch(Exception ex)
                {
                    return ex.Message;
                }
                finally
                {
                    conn.Close();
                }
            }
        }
    }
    
    

    登录界面设计:

    FrmLogin.cs

    //登录按钮
    private void btnLogin_Click(object sender, EventArgs e)
    {
        Login();
    }
    
    //取消按钮
    private void txtCancel_Click(object sender, EventArgs e)
    {
        this.Close();
    }
    
    //按下回车时登录
    private void FrmLogin_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyData == Keys.Return)//判断用户按下的是否为回车键
        {
            Login();
        }
    }
     //login方法
    private void Login()
    {
        //不能为空
        if (txtUser.Text == "" || txtPwd.Text == "")
        {
            MessageBox.Show("用户名或密码不能为空", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            return;
        }
    
        //变量定义
        string user_id = txtUser.Text.Trim();//trim去前后空格
        string user_pwd = txtPwd.Text;//空格也算做密码的一部分,所以不用去
    
        //密码加密
        user_pwd = Commons.EncodeHelper.AES_Encrypt(user_pwd);
    
        Userinfo us = new Userinfo();
        string message = us.Login(user_id,user_pwd);
        if (string.IsNullOrEmpty(message))
        {
            this.Close();
            FrmMain frm = new FrmMain();
            frm.Show();
        }
        else
        {
            MessageBox.Show(message, "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    
    
    
    }
    //注册按钮
    private void lklRes_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        new FrmRegister().ShowDialog();
        /*show和showdialog的区别:
        *showdialog始终获得焦点,其他窗口不能获得焦点
         */
    }
    

    注册界面FrmRegister:

    //注册
    private void btnRes_Click(object sender, EventArgs e)
    {
        //变量定义
        string user_id = txtUser.Text.Trim();
        string user_pwd = txtPwd.Text;
        string user_name = txtUserName.Text.Trim();
        string user_role = string.Empty;
        //密码加密
        user_pwd = Commons.EncodeHelper.AES_Encrypt(user_pwd);
    
        //实例化对象
        Userinfo us = new Userinfo();
        if (rbtnAdmin.Checked)
        {
            user_role = "admin";
        }
        else if (rbtnGroup.Checked)
        {
            user_role = "group";
        }
        else
        {
            user_role = "user";
        }
    
        string mess = us.Register(user_id,user_pwd,user_name,user_role);
        MessageBox.Show(mess, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    
    }
    
    private void btnCaancel_Click(object sender, EventArgs e)
    {
        this.Dispose();
        FrmLogin frm = new FrmLogin();
        frm.Show();
    }
    

    同时,这篇文章在用户密码部分作了加密处理,引用到Core.Common.dll,如果需要密码加密的话,可以选择跳转链接下载https://download.csdn.net/download/qq_42002500/12923364

    展开全文
  • winform简单缓存类实例

    2020-12-31 02:15:38
    本文实例讲述了winform简单缓存类。分享给大家供大家参考。具体如下: public partial class Form3 : Form { //缓存类 System.Web.Caching.Cache cache; public Form3() { InitializeComponent(); string SQL...
  • 本文实例讲述了winform用datagridview制作课程表的方法。分享给大家供大家参考。具体分析如下: 课程表的最终效果如下图所示: 具体方法如下: 1.首先定义一个datatable,并添加列集,行集。 一张课程表的表结构就...
  • winform运行SQL脚本创建数据库

    千次阅读 2017-10-26 13:26:52
    using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; 路径大概是:C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies 只要安装了SQL2008就行,具体百度。 ...
  • C# winformsql的使用介绍

    千次阅读 2019-01-18 16:30:17
    C#winformsql的使用介绍 1:添加命名空间System.Data.SqlClient中的SQL Server访问类; 2:与SQL Server数据库建立连接,ADO.NET提供Connection对象用于建立与SQL Server数据库的连接 string connectionStr = ...
  • 【工控老马出品,必属精品,质量保证,亲测能用】 资源名:C#winform与PLC真空手套箱项目实例源码 资源类型:程序源代码 源码说明: 使用C#写的关于真空手套箱项目的工程源码 适合人群:新手及有一定经验的开发人员
  • C#winform与PLC项目实例_真空手套箱.rar
  • WinForm实例教程

    2013-06-11 19:19:04
    C#语言写的有关WinForm实例源代码
  • 总体思路如下:先建立数据库,再建立webservice,最后通过winform的按钮来调用服务,达到操作数据库的目的。1.数据库设计数据库名称:sa ,表名称:C在sql sever2008 R2下建立表与字段等。 2.建立webservice2.1启动vs...
  • 酒店管理系统 (VS2008 C# winform + sql2000) 目前DOTNET在Winform方面的示例比较匮乏, 希望此示例源码对大家有所帮助!
  • 新手还是要上手编程,从实例中去学习,只看理论定义不便于对概念的深入理解。结合程序实例,自己动手写代码,别无选择。
  • sqlDependency实例代码

    2017-07-13 14:37:26
    例子中实现用sqlDependency监控sqlserver数据库中某张表变动,从而触发前台页面进行操作,并详细说明了注意事项。
  • C#上位机程序与PLC通信,通过modbus TCPIP.里面代码比较多,现在没时间完善下后面有机会再来继续写。
  • 前提: 创建数据库、插入相关数据,我的数据库表名为:User_Info,插入数据如下: ...③当用户名密码都与数据库一致时,登录至(4-2题,即WinForm 数据库增、删、改、查实例)查询界面,实现通过帐号查询id,再通过i
  • 类似于把窗体实例化的函数...这篇主要讲NarBarControlXtraTabControlAssembly实例化窗体的结合使用 NarBarControl结合数据库自动添加GroupItem的实例前面已有讲过,但是这里有一点小改动,这里把Item的URL换成
  • 主要给大家介绍了关于SQL Server存储过程在C#中调用的简单实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL Server存储过程具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • 该工具主要支持两大功能: ...Server=实例名;DataBase=数据库名;User ID=数据库用户名;password=数据库连接密码。 工具默认为Sql2000服务器,数据库用户名为sa,密码为空。 经验不足,望您能够指出改进的地方。
  • 在C#访问SQL Server时,通常将访问SQL Server的连接封装起来。一方面是使用方便,另一方面也是提高安全性(对用户保密数据库的用户名密码)。 创建DBConn类的dll库。 1、打开Visual Studio,创建类库 2、更改类型...
  • 这两天一直在配置SQL sever 2019,主要是用于: ...二是没搞清楚访问的服务器名和实例名。 1. 确定数据库的实例名 数据库的实例名,可以在注册表中找到。 搜索框中输入“运行”,然后输入regedit,打

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,717
精华内容 2,286
关键字:

winform和sql实例