欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

C#在winform中實(shí)現(xiàn)數(shù)據(jù)增刪改查等功能

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C#教程|點(diǎn)擊: 次

winform中利用ado.net實(shí)現(xiàn)對單表的增刪改查的詳細(xì)例子,具體如下:

1.前言:

運(yùn)行環(huán)境:VS2013+SQL2008+Windows10

程序界面預(yù)覽:

使用的主要控件:dataGridview和menuStrip等。

 2.功能具體介紹:

1.首先,我們要先實(shí)現(xiàn)基本的數(shù)據(jù)操作,增刪改查這幾個(gè)操作。

(1)先定義一個(gè)數(shù)據(jù)庫操作的公共類:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.Security.Cryptography;

namespace Data
{
 class SqlDesigner
 {
  private static string connStr = ConfigurationManager.ConnectionStrings["data"].ConnectionString;
  /// <summary>
  /// 返回受影響的數(shù)據(jù)行數(shù)
  /// </summary>
  /// <param name="sql"></param>
  /// <returns></returns>
  public static int ExecuteNoQuery(string sql)
  {
   using (SqlConnection conn=new SqlConnection(connStr))
   {
    conn.Open();
    using (SqlCommand cmd=conn.CreateCommand())
    {
     cmd.CommandText = sql;
     return cmd.ExecuteNonQuery();
     
    }
   }
  }
  /// <summary>
  /// 返回一個(gè)數(shù)據(jù)集
  /// </summary>
  /// <param name="sql"></param>
  /// <returns></returns>
  public static DataSet ExecuteDataSet(string sql)
  {
   using (SqlConnection xonn=new SqlConnection(connStr))
   {
    xonn.Open();
    using (SqlCommand cmd = xonn.CreateCommand())
    {
     cmd.CommandText = sql;
     SqlDataAdapter adapter = new SqlDataAdapter(cmd);
     DataSet dataset = new DataSet();
     adapter.Fill(dataset);
     return dataset;
    }
   }
  }
  public static object ExecuteScalar(string sql)
  {
   using (SqlConnection conn=new SqlConnection(connStr))
   {
    conn.Open();
    using (SqlCommand cmd=conn.CreateCommand())
    {
     cmd.CommandText = sql;
     return cmd.ExecuteScalar();
    }
   }
  }
  /// <summary>
  /// md5加密
  /// </summary>
  /// <param name="strPwd"></param>
  /// <returns></returns>
  public static string GetMD5(string strPwd)
  {
   string pwd = "";
   //實(shí)例化一個(gè)md5對象
   MD5 md5 = MD5.Create();
   // 加密后是一個(gè)字節(jié)類型的數(shù)組
   byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(strPwd));
   //翻轉(zhuǎn)生成的MD5碼  
   s.Reverse();
   //通過使用循環(huán),將字節(jié)類型的數(shù)組轉(zhuǎn)換為字符串,此字符串是常規(guī)字符格式化所得
   //只取MD5碼的一部分,這樣惡意訪問者無法知道取的是哪幾位
   for (int i = 3; i < s.Length - 1; i++)
   {
    //將得到的字符串使用十六進(jìn)制類型格式。格式后的字符是小寫的字母,如果使用大寫(X)則格式后的字符是大寫字符
    //進(jìn)一步對生成的MD5碼做一些改造
    pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X");
   }
   return pwd;
  }
 
 }
}

(2)運(yùn)用建立的公共類,進(jìn)行數(shù)據(jù)庫的操作:

a.數(shù)據(jù)查詢:

ds = SqlDesigner.ExecuteDataSet("select * from dtuser");   
dt = ds.Tables[0];   
dataGridView1.DataSource = dt;

b.數(shù)據(jù)添加

 i = SqlDesigner.ExecuteNoQuery("insert into dtuser(uid,uname,pwd,uflag)values('" + textBox1.Text + "','" + textBox2.Text + "','" +textBox3.Text+ "','" + textBox4.Text + "')");

c.數(shù)據(jù)刪除

string currentIndex = dataGridView1.CurrentRow.Cells[0].Value.ToString();
i = SqlDesigner.ExecuteNoQuery("delete from dtuser where uid='" + currentIndex + "'");

d.數(shù)據(jù)修改

i = SqlDesigner.ExecuteNoQuery("update dtrole set rname='" + textBox2.Text + "',flag='" + textBox3.Text + "'where rid='" + textBox1.Text + "'");

e.一些細(xì)節(jié)

這里,我們修改一下添加數(shù)據(jù),讓添加的數(shù)據(jù)變成字符串的形式,也就是加密操作:

string str = SqlDesigner.GetMD5(textBox3.Text.Trim());    
 i = SqlDesigner.ExecuteNoQuery("insert into dtuser(uid,uname,pwd,uflag)values('" + textBox1.Text + "','" + textBox2.Text + "','" + str + "','" + textBox4.Text + "')");

(3)dataGridView控件:

//綁定數(shù)據(jù)源
dataGridView1.DataSource = dt;
//自動適應(yīng)列寬
dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;

3.代碼僅供參考:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Data
{
 public partial class Form1 : Form
 {
  
  public Form1()
  {
   InitializeComponent();   
  }     
    
  DataSet ds = new DataSet();
  DataTable dt = new DataTable();

  private void TextBoxNull()
  {
   textBox1.Text = "";
   textBox2.Text = "";
   textBox3.Text = "";
   textBox4.Text = "";
  }
  private void 用戶ToolStripMenuItem_Click(object sender, EventArgs e)
  {
   TextBoxNull();
   ds = SqlDesigner.ExecuteDataSet("select * from dtuser");   
   dt = ds.Tables[0];
   dataGridView1.DataSource = dt;
   labelshow();
  }

  private void 角色ToolStripMenuItem_Click(object sender, EventArgs e)
  {
   TextBoxNull();
   ds = SqlDesigner.ExecuteDataSet("select *from dtrole");
   dt = ds.Tables[0];
   dataGridView1.DataSource = dt;
   label4.Text = "None";
   textBox4.Text = "None";
   labelshow();
  }

  private void 對象ToolStripMenuItem_Click(object sender, EventArgs e)
  {
   TextBoxNull();
   ds = SqlDesigner.ExecuteDataSet("select * from dtfunction");
   dt = ds.Tables[0];
   dataGridView1.DataSource = dt;
   labelshow();
  }

  private void 幫助ToolStripMenuItem_Click(object sender, EventArgs e)
  {
   TextBoxNull();
   ds = SqlDesigner.ExecuteDataSet("select * from help");
   dt = ds.Tables[0];
   dataGridView1.DataSource = dt;
   dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
  }
  //雙擊dataGridView1
  private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
  {
   string index = dataGridView1.CurrentRow.Cells[0].Value.ToString();
   if (label1.Text == "uid")
   {
    ds = SqlDesigner.ExecuteDataSet("select *from dtuser where uid='" + index + "'");
    dt = ds.Tables[0];
    DataRow row = dt.Rows[0];
    textBox1.Text = row["uid"].ToString();
    textBox2.Text = row["uname"].ToString();
    textBox3.Text = row["pwd"].ToString();
    textBox4.Text = row["uflag"].ToString();
   }
   if (label1.Text == "rid")
   {
    ds = SqlDesigner.ExecuteDataSet("select *from dtrole where rid='" + index + "'");
    dt = ds.Tables[0];
    DataRow row = dt.Rows[0];
    textBox1.Text = row["rid"].ToString();
    textBox2.Text = row["rname"].ToString();
    textBox3.Text = row["flag"].ToString();
    textBox4.Text = "None";
   }
   if (label1.Text == "fid")
   {
    ds = SqlDesigner.ExecuteDataSet("select *from dtfunction where fid='" + index + "'");
    dt = ds.Tables[0];
    DataRow row = dt.Rows[0];
    textBox1.Text = row["fid"].ToString();
    textBox2.Text = row["fname"].ToString();
    textBox3.Text = row["flag"].ToString();
    textBox4.Text = row["uflag"].ToString();
   }
  }
  private void labelshow() 
  {
   label1.Text = dataGridView1.Columns[0].HeaderText;
   label2.Text = dataGridView1.Columns[1].HeaderText;
   label3.Text = dataGridView1.Columns[2].HeaderText;
   try
   {
    label4.Text = dataGridView1.Columns[3].HeaderText;
   }
   catch (Exception)
   {

    label4.Text = "None";
   }               
  }    
  private void btn_add_Click(object sender, EventArgs e)
  {   
   int i = 0;
   if (label1.Text=="uid")
   {
    string str = SqlDesigner.GetMD5(textBox3.Text.Trim());    
    i = SqlDesigner.ExecuteNoQuery("insert into dtuser(uid,uname,pwd,uflag)values('" + textBox1.Text + "','" + textBox2.Text + "','" + str + "','" + textBox4.Text + "')");
   }
   else if (label1.Text == "rid")
   {    
    i = SqlDesigner.ExecuteNoQuery("insert into dtrole(rid,rname,flag)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "')");
   }
   else
   {
    try
    {
     i = SqlDesigner.ExecuteNoQuery("insert into dtfunction(fid,rid,uid,uflag)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')");
    }
    catch (Exception)
    {
     MessageBox.Show("添加失敗");
    }
    
   }
   
   if (i > 0)
   {
    MessageBox.Show("添加成功");
   }
   else
   {
    MessageBox.Show("添加失敗");
   }          
  }
  
  private void btn_del_Click(object sender, EventArgs e)
  {
   int i = 0;
   string currentIndex = dataGridView1.CurrentRow.Cells[0].Value.ToString();
   if (label1.Text=="uid")
   {
    i = SqlDesigner.ExecuteNoQuery("delete from dtuser where uid='" + currentIndex + "'");
   }
   else if (label1.Text=="fid")
   {
    i = SqlDesigner.ExecuteNoQuery("delete from dtfunction where fid='" + currentIndex + "'");
   }
   else
   {
    i = SqlDesigner.ExecuteNoQuery("delete from dtrole where rid='" + currentIndex + "'");
   }
   if (i > 0)
   {
    MessageBox.Show("刪除成功");
   }
   else
   {
    MessageBox.Show("刪除失敗");
   }
  }

  private void btn_update_Click(object sender, EventArgs e)
  {
   int i = 0;
   if (label1.Text == "rid")
   {
    i = SqlDesigner.ExecuteNoQuery("update dtrole set rname='" + textBox2.Text + "',flag='" + textBox3.Text + "'where rid='" + textBox1.Text + "'");
   }
   if (label1.Text == "uid")
   {
    i = SqlDesigner.ExecuteNoQuery("update dtuser set uname='" + textBox2.Text + "',pwd='" + textBox3.Text + "',uflag='" + textBox4.Text + "'where uid='" + textBox1.Text + "'");
   }
   if (label1.Text=="fid")
   {
    i = SqlDesigner.ExecuteNoQuery("update dtfunction set rid='" + textBox2.Text + "',uid='" + textBox3.Text + "',uflag='" + textBox4.Text + "'where fid='" + textBox1.Text + "'");
   }
   if (i > 0)
   {
    MessageBox.Show("Succeed!");
   }
   else
   {
    MessageBox.Show("Failed!");
   }
  } 

  
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:C#窗體全屏功能實(shí)例代碼

欄    目:C#教程

下一篇:詳解C#的排列組合

本文標(biāo)題:C#在winform中實(shí)現(xiàn)數(shù)據(jù)增刪改查等功能

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6152.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有