C#winform实现增删改查
来源:互联网 发布:java调用ireport报表 编辑:程序博客网 时间:2024/05/18 05:17
上文介绍了pb实现增删改查,短短几十行代码就ok了,c#的winform相对麻烦一点,因为没有datawindow神器呀。
数据库还是sqlserver,表的名字依然是table_test,字段dbid键值,xm1,xm2,xm3字符型。
首先使用vs建立一个windows窗口应用程序test
第二步,在form1上摆放控件
和上文的pb的程序一样排版就可以,拖放一个datagridview,四个button,四个label,三个text,两个radiobutton还有两个groupbox。
第三步,编写一个处理数据库的类db.cs
using System;using System.Data;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.SqlClient;namespace test{ class db { public static string connectionstring = "server=localhost;database=db;uid=sa;pwd=password"; public static SqlConnection OpenDB() { try { SqlConnection oConn = new SqlConnection(connectionstring); oConn.Open(); return oConn; } catch { throw; } } public static void CloseDB(SqlConnection oConn) { try { oConn.Close(); } catch { throw; } } public static DataSet Execute(string strCommandString) { try { SqlConnection oConn = OpenDB(); DataSet oDataSet = new DataSet(); SqlDataAdapter oDataAdapter = new SqlDataAdapter(strCommandString, oConn); oDataAdapter.Fill(oDataSet); CloseDB(oConn); return oDataSet; } catch { throw; } } public static int ExecuteNonQuery(string strCommandString) { int li_count = 0; SqlConnection oConn = null; SqlCommand oComm = null; try { oConn = new SqlConnection(connectionstring); oComm = new SqlCommand(); oConn.Open(); oComm.Connection = oConn; oComm.CommandText = strCommandString; li_count = oComm.ExecuteNonQuery(); return li_count; } catch { return 0; } finally { if (oConn != null) oConn.Close(); } } public static int ExecuteReid(string strCommandString) { int li_count = 0; SqlConnection oConn = null; SqlCommand oComm = null; try { oConn = new SqlConnection(connectionstring); oComm = new SqlCommand(); oConn.Open(); oComm.Connection = oConn; oComm.CommandText = strCommandString; li_count = Convert.ToInt32(oComm.ExecuteScalar().ToString()); return li_count; } catch { return 0; } finally { if (oConn != null) oConn.Close(); } } }}
第四步:编写增删改查的程序
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace test{ public partial class Form1 : Form { private string ls_dbid = ""; public Form1() { InitializeComponent(); get_db1(""); } private int get_db1(string as_where) { string ls_sql = "select xm1,xm2,xm3,dbid from table_test " + as_where + " order by dbid"; DataSet ds = new DataSet(); try { ds = db.Execute(ls_sql); } catch { //数据库出错,相应的sql为getsql() MessageBox.Show("error of connect database"); } dgv1.DataSource = ds.Tables[0].DefaultView; dgv1.Columns[0].HeaderText = "姓名"; dgv1.Columns[1].HeaderText = "性别"; dgv1.Columns[2].HeaderText = "电话"; dgv1.Columns[0].Width = 200; dgv1.Columns[1].Width = 100; dgv1.Columns[2].Width = 400; dgv1.Columns[3].Visible = false; return ds.Tables[0].Rows.Count; } private void dgv1_MouseClick(object sender, MouseEventArgs e) { txt_xm1.Text = dgv1.CurrentRow.Cells[0].Value.ToString(); string ls_xm2 = dgv1.CurrentRow.Cells[1].Value.ToString(); if (ls_xm2.Equals("男")) { rb_1.Checked = true; } else { rb_2.Checked = true; } txt_xm3.Text = dgv1.CurrentRow.Cells[2].Value.ToString(); ls_dbid = dgv1.CurrentRow.Cells[3].Value.ToString(); } private void dgv1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { DataGridView dgv = sender as DataGridView; Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dgv.RowHeadersWidth - 4, e.RowBounds.Height); TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dgv.RowHeadersDefaultCellStyle.Font, rectangle, dgv.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right); } private void bt_add_Click(object sender, EventArgs e) { txt_xm1.Text = ""; rb_1.Checked = true; txt_xm3.Text = ""; ls_dbid = ""; } private void bt_save_Click(object sender, EventArgs e) { // *** 将信息更新到数据库 string ls_xm2 = ""; if (rb_1.Checked) { ls_xm2 = "男"; } else { ls_xm2 = "女"; } if (ls_dbid == "") { string ls_sql = "INSERT INTO table_test ( xm1,xm2,xm3 ) VALUES ( @@xm1, @@xm2, @@xm3 ); SELECT dbid FROM table_test WHERE (dbid = @@IDENTITY)"; ls_sql = ls_sql.Replace("@@xm1", "'" + txt_xm1.Text.ToString() + "'"); ls_sql = ls_sql.Replace("@@xm2", "'" + ls_xm2 + "'"); ls_sql = ls_sql.Replace("@@xm3", "'" + txt_xm3.Text.ToString() + "'"); int li_ret1 = db.ExecuteReid(ls_sql); if (li_ret1 > 0) { ls_dbid = li_ret1.ToString(); } else { MessageBox.Show("增加失败", "信息"); return; } } else { string ls_sql = "update table_test set xm1=@@xm1,xm2=@@xm2,xm3=@@xm3 where dbid = " + ls_dbid; ls_sql = ls_sql.Replace("@@xm1", "'" + txt_xm1.Text.ToString() + "'"); ls_sql = ls_sql.Replace("@@xm2", "'" + ls_xm2 + "'"); ls_sql = ls_sql.Replace("@@xm3", "'" + txt_xm3.Text.ToString() + "'"); db.ExecuteNonQuery(ls_sql); } get_db1(""); MessageBox.Show("保存成功!", "信息"); } private void bt_del_Click(object sender, EventArgs e) { if (ls_dbid == "") { MessageBox.Show("请选择要删除的记录"); } else { string ls_sql = "delete from table_test where dbid=" + ls_dbid ; db.ExecuteNonQuery(ls_sql); get_db1(""); MessageBox.Show("删除成功!", "信息"); } } private void bt_exit_Click(object sender, EventArgs e) { Close(); } private void txt_cx_TextChanged(object sender, EventArgs e) { string ls_where = ""; if (this.Text.Equals("")) { ls_where = ""; } else { ls_where = " where (xm1 like '%" + txt_cx.Text.ToString() + "%') or (xm2 like '%" + txt_cx.Text.ToString() + "%') or (xm3 like '%" + txt_cx.Text.ToString() + "%')"; } get_db1(ls_where); } } }
总结:
微软的工具,在windows平台上开发程序还是很高效的,短短几百行代码就把问题全部搞定了。
0 0
- C#winform实现增删改查
- C#Winform Linq_to_Sql 实现增删改查功能
- winform中的增删改查
- C#WebForm实现增删改查
- C#easyui实现增删改查
- 【C++】单链表的增删查改实现
- C# winform xml的增删改查
- C# winform xml的增删改查
- 【c++】模拟实现string类__实现增删查改
- C#+ XML 增删改查
- MongoDB c 增删改查
- xml实现增删查改
- web增删改查实现
- JDBC 实现增删改查
- MVC实现增删查改
- HQL实现增删改查
- ibatis实现增删改查
- javaScript实现增删改查
- MySQL 5.6 if与end if在触发器中的使用
- 青铜莲花池(bfs)
- Codeforces 798D Mike and distribution 构造
- LeetCode 64. Minimum Path Sum
- PageHelper插件的使用方法
- C#winform实现增删改查
- JavaScript 1.8 数组
- 技术方向的选择
- http client/server for asyncio
- 循环队列顺序储存
- Django开发环境与生产环境的设置
- 问题 D: 有解吗?
- JSON 数据解析
- Linux进程管理常用命令