工控最強(qiáng)王者
世上無難事,只怕有心人
級別: 略有小成
精華主題: 1 篇
發(fā)帖數(shù)量: 91 個
工控威望: 232 點
下載積分: 2123 分
在線時間: 85(小時)
注冊時間: 2018-10-26
最后登錄: 2024-05-16
查看工控最強(qiáng)王者的 主題 / 回貼
樓主  發(fā)表于: 2019-01-22 16:00
折騰了好久,蒙圈了很久,終于調(diào)用數(shù)據(jù)庫成功,小白一個,把學(xué)習(xí)經(jīng)驗分享一下,,希望高手指點。。。

首先你要有C#基礎(chǔ)吧,http://www.runoob.com/csharp/csharp-operators.html;其次你要知道數(shù)據(jù)庫是干嘛用的,可以百度搜;

安裝VS2017;這個是C#開發(fā)環(huán)境,也可以弄數(shù)據(jù)庫;
  

然后就新建一個C#桌面應(yīng)用,畫一個按鈕  

數(shù)據(jù)庫怎么弄呢,https://jingyan.baidu.com/album/9f63fb91893ac3c8410f0e58.html?picindex=1;

窗體應(yīng)用怎么連接數(shù)據(jù)庫呢  https://www.cnblogs.com/makqiq/p/5882351.html
下圖是我設(shè)置的表,以及窗體查詢數(shù)據(jù)庫里的數(shù)據(jù)  
  
點擊運(yùn)行


  
下面附上程序
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace WindowsFormsApp4
{
    public partial class Form1 : Form //窗體1
    {
        private string connectString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\123\Documents\mydata.mdf;Integrated Security=True;Connect Timeout=30";//這個是連接數(shù)據(jù)庫的字符串,右擊你建立的數(shù)據(jù)庫,屬性,連接字符串復(fù)制過來,記得加上@哦

        public Form1()
        {
            InitializeComponent();//初始化
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void button1_Click(object sender, EventArgs e)    //按鈕點擊事件
        {
            SqlConnection sqlCnt = new SqlConnection(connectString);//實例化sqlConnection
            sqlCnt.Open();   //打開數(shù)據(jù)庫
            MessageBox.Show("數(shù)據(jù)庫已打開");//打印數(shù)據(jù)庫
            SqlCommand command = sqlCnt .CreateCommand();//實例化SqlCommand
          
          
            command.CommandType = CommandType.Text;    //這個是執(zhí)行SQL語句
            command.CommandText = "SELECT*FROM dbo.[Table]"; //查詢你建立的表格
            SqlDataReader reader = command.ExecuteReader();     //執(zhí)行SQL,返回一個“流”
            while (reader.Read())
            {
                MessageBox.Show(Convert.ToString ( reader["id"])+ Convert.ToString(reader["姓名"]) + Convert.ToString(reader["年齡"]));  // 打印出每個用戶的信息
            }



            sqlCnt.Close();//關(guān)閉數(shù)據(jù)庫
            
          
        }
    }
}
[ 此帖被工控最強(qiáng)王者在2019-01-22 16:18重新編輯 ]
本帖最近評分記錄:
  • 下載積分:+1(plcchina) 熱心助人!
  • 下載積分:+2(阿萱子v)
  • 下載積分:+2(防彈武僧) 感謝分享!
  • 下載積分:+3(十月幾川) 熱心助人!
  • 下載積分:+5(myc2012) 好貼好貼!
  • 下載積分:+5(sbhd516)
  • 下載積分:+5(mk自動化)
  • 下載積分:+3(gadna9) 好帖
    814382100
    學(xué)無止境
    級別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 558 個
    工控威望: 724 點
    下載積分: 1859 分
    在線時間: 156(小時)
    注冊時間: 2016-10-29
    最后登錄: 2024-10-22
    查看814382100的 主題 / 回貼
    1樓  發(fā)表于: 2019-01-22 18:57
    點個贊謝謝分享
    walxyfsk
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 66 個
    工控威望: 188 點
    下載積分: 654 分
    在線時間: 300(小時)
    注冊時間: 2014-04-07
    最后登錄: 2024-11-08
    查看walxyfsk的 主題 / 回貼
    2樓  發(fā)表于: 2019-01-23 08:48
    這個不錯,我也正想學(xué)習(xí)這個
    秋意正濃
    級別: 網(wǎng)絡(luò)英雄
    精華主題: 0
    發(fā)帖數(shù)量: 94 個
    工控威望: 7206 點
    下載積分: 80350 分
    在線時間: 869(小時)
    注冊時間: 2015-05-30
    最后登錄: 2024-11-08
    查看秋意正濃的 主題 / 回貼
    3樓  發(fā)表于: 2019-01-23 09:11
    謝謝!
    abadguy
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 289 個
    工控威望: 483 點
    下載積分: 1506 分
    在線時間: 235(小時)
    注冊時間: 2012-08-21
    最后登錄: 2023-06-27
    查看abadguy的 主題 / 回貼
    4樓  發(fā)表于: 2019-01-23 09:52
    能不給你個贊嗎?不能!
    你好啊朋友
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 46 個
    工控威望: 388 點
    下載積分: 6776 分
    在線時間: 31(小時)
    注冊時間: 2018-07-04
    最后登錄: 2020-04-20
    查看你好啊朋友的 主題 / 回貼
    5樓  發(fā)表于: 2019-01-23 16:53
    雖說現(xiàn)在用不到,但以后指不定就想學(xué)了。經(jīng)驗互享,共同進(jìn)步,老鐵,狠贊,給你雙擊666!
    自由不是指想做什么就做什么,而是可以不做自己不想做的事
    等待后獨(dú)行
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 83 個
    工控威望: 312 點
    下載積分: 3280 分
    在線時間: 17(小時)
    注冊時間: 2019-01-07
    最后登錄: 2020-02-17
    查看等待后獨(dú)行的 主題 / 回貼
    6樓  發(fā)表于: 2019-01-24 10:05
    666,多謝老鐵
    daihoo81
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 102 個
    工控威望: 354 點
    下載積分: 903 分
    在線時間: 585(小時)
    注冊時間: 2011-03-04
    最后登錄: 2024-11-05
    查看daihoo81的 主題 / 回貼
    7樓  發(fā)表于: 2019-01-25 09:51
    點個贊謝謝分享
    zw2940707
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 23 個
    工控威望: 150 點
    下載積分: 551 分
    在線時間: 74(小時)
    注冊時間: 2013-05-15
    最后登錄: 2023-08-09
    查看zw2940707的 主題 / 回貼
    8樓  發(fā)表于: 2019-01-25 13:03
    太一、定義連接字符串,用來鏈接SQL Server

    string str_con = "server=.(服務(wù)器名稱一般為 . );database=WordBook(數(shù)據(jù)庫名稱);uid=sa(服務(wù)器登錄名);pwd=123(服務(wù)器密碼)";

    二、有了鏈接字符串之后,開始數(shù)據(jù)庫操作

    1、數(shù)據(jù)庫查詢

    定義了一個查詢方法,用來調(diào)用:

    public DataSet queryDatabase(string sql)    //sql是查詢語句
            {
                //儲存數(shù)據(jù)的工具初始化
                DataSet ds = new DataSet();
                //相當(dāng)于鏈接數(shù)據(jù)庫的一個工具類(連接字符串)
                using (SqlConnection con = new SqlConnection(str_con))
                {
                    con.Open();  //打開
                    //用SqlConnection工具鏈接數(shù)據(jù)庫,在通過sql查詢語句查詢結(jié)果現(xiàn)存入sql適配器
                    SqlDataAdapter sda = new SqlDataAdapter(sql,con);   //(查詢語句和連接工具)
                    sda.Fill(ds);    //將適配器數(shù)據(jù)存入DataSet工具中
                    con.Close();   //用完關(guān)閉SqlConnection工具
                    return ds;
                }
            }

    在需要查詢數(shù)據(jù)庫的地方調(diào)用此方法:

    private void query() {
                //查詢WordBook表中,book_key字段數(shù)值為7的那一行數(shù)據(jù)
                //string sql = "select * from Word_Book where book_key='7'";

                string sql = "select * from Word_Book ";     //查詢?nèi)?br />            DataSet ds = help.queryDatabase(sql);        //查詢到數(shù)據(jù)
                DataTable dt = ds.Tables[0];                       //把查到的數(shù)據(jù)存入數(shù)據(jù)表中
                sqlDataResult.DataSource = dt;                  //把數(shù)據(jù)賦值給gridView展示(全表)

                // string str=dt.Rows[0][1].ToString();//查找表中某一個內(nèi)容
                // MessageBox.Show(str);
            }

    2、數(shù)據(jù)庫添加、刪除、修改

    C#中數(shù)據(jù)庫的添加、刪除、修改用的是同斷代碼,所以定義了一個方法,用來調(diào)用:

    public int changeSqlData(String sql)
            {
                using(SqlConnection con=new SqlConnection(str_con))
                {
                    con.Open();
                    //操作數(shù)據(jù)庫的工具SqlCommand
                    SqlCommand cmd = new SqlCommand(sql, con);//(操作語句和鏈接工具)
                    int i=cmd.ExecuteNonQuery();//執(zhí)行操作返回影響行數(shù)()
                    con.Close();
                    return i;
                }
            }

    在需要操作數(shù)據(jù)庫的地方調(diào)用此方法:

    ①數(shù)據(jù)庫添加:

    private void btn_add_Click(object sender, EventArgs e)
            {
                //sql添加數(shù)據(jù) insert into 表名(字段,字段...) values(‘內(nèi)容’,‘內(nèi)容’...)
                string sql = "insert into Word_Book(book_word_CN,book_word_JP,book_word_Roma,book_nominal," +
                    "book_gloze) values('" + book_word_CN.Text.Trim()+"','"+ book_word_JP .Text.Trim() + "','"
                    + book_word_Roma .Text.Trim() + "','"+ book_nominal.Text.Trim() + "','" + book_gloze.Text.Trim() + "')";
                    int i=help.changeSqlData(sql);
                if (i == 0) MessageBox.Show("添加失敗", "提示:");
                else MessageBox.Show("添加成功", "提示:");
            }

    ②數(shù)據(jù)庫刪除:
    private void btn_delete_Click(object sender, EventArgs e)
            {
                //根據(jù)同個字段中不同內(nèi)容刪除多行
                //delete from Word_Book where book_key in (1,2,3)

                //sql刪除數(shù)據(jù)delete 表名 where 字段='內(nèi)容'單個條件用or鏈接,多個條件用and鏈接
                string sql = "delete from Word_Book where book_key='"+book_key.Text.Trim()+"'";
                int i=help.changeSqlData(sql);
                if (i == 0) MessageBox.Show("刪除失敗", "提示:");
                else MessageBox.Show("刪除成功", "提示:");
            }

    ②數(shù)據(jù)庫更新:

    private void btn_update_Click(object sender, EventArgs e)
            {
                //根據(jù)條件修改多個字段內(nèi)容
                //update 表名 set 字段='內(nèi)容', 字段='內(nèi)容' where 條件字段='內(nèi)容'
                string sql = "update Word_Book set book_word_CN='"+book_word_CN.Text.Trim()+
                    "', book_word_JP='"+book_word_JP.Text.Trim()+"'where book_key='" + book_key.Text.Trim()+"'";
                int i = help.changeSqlData(sql);
                if (i == 0) MessageBox.Show("修改失敗", "提示:");
                else MessageBox.Show("修改成功", "提示:");
            }
    樓主留言:
    int i =help.
    本帖最近評分記錄:
  • 下載積分:+1(工控最強(qiáng)王者) 感謝分享!
    列仲宇
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 75 個
    工控威望: 135 點
    下載積分: 685 分
    在線時間: 23(小時)
    注冊時間: 2018-10-31
    最后登錄: 2019-05-11
    查看列仲宇的 主題 / 回貼
    9樓  發(fā)表于: 2019-01-26 10:52
    學(xué)習(xí)了
    crgtom
    人生三寶:家庭,事業(yè),健康。
    級別: 網(wǎng)絡(luò)英雄

    精華主題: 0
    發(fā)帖數(shù)量: 1378 個
    工控威望: 9657 點
    下載積分: 95964 分
    在線時間: 928(小時)
    注冊時間: 2009-09-21
    最后登錄: 2024-11-08
    查看crgtom的 主題 / 回貼
    10樓  發(fā)表于: 2019-02-19 09:40
    技術(shù)是有時效性的,一旦錯過了時效性,昔日人人求之不得的技術(shù),最終會變成沒有多少作用的垃圾!
    804759109
    無獨(dú)有偶啊
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 249 個
    工控威望: 362 點
    下載積分: 1142 分
    在線時間: 730(小時)
    注冊時間: 2010-12-21
    最后登錄: 2024-09-19
    查看804759109的 主題 / 回貼
    11樓  發(fā)表于: 2019-02-19 16:32
    太簡單了吧
    樓主留言:
    我就是從一點不懂,開始懂一點點