SQLServer複習文檔1(with C#)

来源:http://www.cnblogs.com/Aries-rong/archive/2017/12/14/8033976.html
-Advertisement-
Play Games

目錄: 前言 SQL Server基礎準備 1.新建資料庫 2.在數據中添加表 3.向表中添加數據 SQL Server與C#基礎準備 實例解析 1.C#連接資料庫 2.查詢特定列數據 3.使用列別名 4.在列上加入計算 5.使用比較設置條件 總結 1.新建資料庫 2.在數據中添加表 3.向表中添加 ...


目錄:

 

正文:

回到頂部

前言:

  對於SQL Server的相關知識我都是在校的時候瞭解的,畢業到現在可以說完全沒有再碰了,所謂三天不練手生,所以關於資料庫這一塊的知識我可以說完完全全還給老師了(emmmm,對不起我的學費呀),而且最尷尬的是資料庫的知識可以說是軟體開發一塊很重要的東西了,不說特別精通,但是我這種完全還給老師的“人才”可能也是沒誰了,所以!為了我曾經的學費,又重新撿起來學一下吧,目前本人供職於C#,所以文中所有的代碼聯繫均為C#語言,另:文中的點都是基礎知識複習(就我這水平也暫時別指望從這裡看到很高深的技術了o(╯□╰)o)。

回到頂部

SQL Server基礎準備

  SQL Server:Structured Query Language結構化查詢語句。

1.新建資料庫

  這裡我就懶得說什麼亂七八糟的定義了,SQL中重要的就是建表,表中重要的就是有主鍵,差不多就這兩個點。然後我現在直接通過資料庫建表:

  

2.在資料庫中添加表

  然後再表中添加各種信息(在這裡我將學生編號設置為主鍵):

       註意:一個表中一定要有一個主鍵!

   

  Tip:如果你弄好了這個信息,然後關閉了表的界面,突然想起有什麼地方不對,想重新進去,那就右鍵點擊你要修改的表名,然後選擇“設計”就可以了。

3.向表中添加數據

  然後就是給表添加信息了:

  選中你剛剛保存的表,然後右鍵點擊,選中“編輯前200行”即可。然後一個勁的往裡面寫數據就對了。

   

回到頂部

SQL Server與C#基礎準備:

  Visual Studio連接資料庫方法:

  通過在工具中找到“伺服器資源管理器”,然後連接資料庫,英文:server explore.

   

 

  在與資料庫操作的代碼中,我們需要加入using System.Data.SqlClient;命名空間。

回到頂部

實例解析:

1.C#連接數據

  代碼:

1 //表示一個到 SQL Server 資料庫的打開的連接
2 SqlConnection cn = new SqlConnection("server=(local);database=db_10;Uid=sa;Pwd=");
3 //SQL Server語言,對資料庫中表進行操作的語言
4 string cmdtx = "";
5 //與DataSet使用相關
6 SqlDataAdapter dataAdapter;
7 //記憶體中的資料庫,用於暫存資料庫中的數據
8 DataSet dataSet/* = new DataSet()*/; 

  與資料庫相連,首先新建一個SqlConnection實例,等到要連接資料庫的時候就用cn.open()來打開數據。

  這裡補充一下DataSet:

  DataSet可以當成是記憶體中的資料庫,他不依賴於資料庫而獨立的數據集合。

  我是這麼理解的:從資料庫中讀出來的數據暫時是保存在DataSet中的,等需要用的時候從DataSet中取出來。

  在實際應用中,DadaSet一般有三種使用方法:

  1. 把資料庫中的數據通過DataAdapter對象填充到DataSet中;
  2. 通過DataAdapter對象操作DataSet實現更新資料庫;
  3. 把XML數據流或者文本載入到DataSet.

2.查詢特定列數據

  對資料庫操作的語句:"SELECT 列名 FROM 表"

  代碼:

 1 //10.01-1
 2 private void select_Button_Click(object sender, EventArgs e)
 3 {
 4     cmdtx = "SELECT 學生編號,學生姓名 FROM Table_1";
 5     //已經打開了在load中
 6     //cn.Open();
 7     dataSet = new DataSet();
 8     dataAdapter = new SqlDataAdapter(cmdtx, cn);
 9     dataAdapter.Fill(dataSet, "table");
10 
11     showSpecialInfo_dataGridView.DataSource = dataSet.Tables[0].DefaultView;
12 }

  Tip:開始的時候只有這麼一個功能,我通過cn.Open();單獨打開了資料庫的時候沒問題,後面因為添加了新的功能我在Load函數中又打開了一次,這個時候在運行就會報錯,所以實踐證明:只能打開一次資料庫。

3.使用列別名

  對資料庫操作的語句:"SELECT 列名,某一列名 AS 他對應的列別名 FROM 表"

  代碼:

 1 //10.01-2
 2 private void changeAlias_button_Click(object sender, EventArgs e)
 3 {
 4     if (columnName_comboBox.Text == "" || alias_textBox.Text == "")
 5     {
 6         MessageBox.Show("ColumnName or Alias can't be empty!");
 7         return;
 8     }
 9     //我去,一個空格坑了我這麼久
10     cmdtx = "SELECT " + columnName_comboBox.Text + "," + columnName_comboBox.Text + " AS " + alias_textBox.Text.Trim() + " FROM Table_1";
11     dataAdapter = new SqlDataAdapter(cmdtx, cn);
12     //如果這裡我沒有重新實例化一個dataset就會調用之前在記憶體中的數據
13     dataSet = new DataSet();
14     dataAdapter.Fill(dataSet, "table");
15 
16     changeAliasName_dataGridView.DataSource = dataSet.Tables[0].DefaultView;
17 }

  Tip:這裡遇到了兩個問題:

  1. 因為一個空格我被坑到了,在SELECT語句中那裡的空格,彼此之間一個都不能少,不然資料庫讀不出來,就報錯了;
  2. 開始我在運用DataSet的時候,我沒有重新實例化一個,搞不懂為什麼顯示的數據總是不對,後來嘗試出來才發現要是不重新實例化DataSet,那麼他就一直調用原來的數據。

4.在列上加入計算

  對資料庫操作的語句: SELECT 列名,(A列+B列) AS 新的列 FROM 表"

  代碼:

1 //10.01-3
2 private void finalScore_button_Click(object sender, EventArgs e)
3 {
4     cmdtx = "SELECT 學生編號,馬克思成績,高數成績,(馬克思成績+高數成績) AS 總成績 FROM Table_3";
5     dataAdapter = new SqlDataAdapter(cmdtx, cn);
6     dataSet = new DataSet();
7     dataAdapter.Fill(dataSet, "table");
8     Sum_dataGridView.DataSource = dataSet.Tables[0].DefaultView;
9 } 

5.使用比較設置條件

  對資料庫操作的語句:"SELECT 列名 FROM 表 WHERE 限制條件"

  代碼:

 1 //10.01-4
 2 private void scoreLine_button_Click(object sender, EventArgs e)
 3 {
 4     if (line_comboBox.Text == "" || scoreLine_textBox.Text == "")
 5     {
 6         MessageBox.Show("Score can't be empty!");
 7         return;
 8     }
 9     dataSet = new DataSet();
10     cmdtx = "SELECT * FROM Table_3 WHERE "+line_comboBox.Text+">"+scoreLine_textBox.Text;
11     dataAdapter = new SqlDataAdapter(cmdtx, cn);
12     dataAdapter.Fill(dataSet, "table");
13 
14     line_dataGridView.DataSource = dataSet.Tables[0].DefaultView;
15 }

回到頂部

總結:

  在我看來對資料庫的操作的語句都比較不熟悉,加上可能有的時候涉及的各種表的名字很難記住,我的習慣是會再草稿紙上寫出那句話,然後條件再慢慢往裡面套,這樣比較笨拙,但是對我來說比較穩當一點,嘻嘻。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Oracle 9i 開始支持閃回,Oracle10g開始全面支持閃回功能,Oracle11g有所完善,為大家快速的恢複數據,查詢歷史數據提供了很大的便捷方法。 本文主要對Oracle常用閃回使用做些詳細介紹,其中對於不常用的事務和版本閃回,這裡就不做介紹 一、Oracle閃回概述 二、Oracle閃 ...
  • 引言 在上一篇中 "大數據學習系列之二 HBase環境搭建(單機)" 中,成功搭建了Hadoop+HBase的環境,本文則主要講述使用Java 對HBase的一些操作。 一、事前準備 1.確認hadoop和hbase成功啟動 2.確認防火牆是否關閉 3.maven所需要的依賴架包 4.修改hosts ...
  • 資料庫簡介、資料庫相關產品、Mysql簡介、mysql資料庫的安裝、客戶端與伺服器端模型、客戶端與伺服器端模型、MySQL管理、mysql多實例配置、mysql忘記密碼怎麼辦? ...
  • 一、數據更新 示例1:把表名為“aa”的表中欄位"a"的值為“1”的數據更新兩個欄位的數據如下 備註: 只更新第一條記錄: db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 全部更新: 只添加第一條: ...
  • 一、什麼是MongoDB? MongoDB 是一個基於分散式文件存儲的資料庫。 MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。 MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似 ...
  • 工作中需要創建SQL Job對資料庫進行定期備份,現把腳本記錄如下。 1. 完整備份: 2. 差異備份: 以上兩段可以分別創建兩個SQL Job,比如完整備份的作業可以定在每周天凌晨運行,執行成功後刪掉之前的備份文件(代碼中有刪除的語句),差異備份的作業定在周一到周六每天凌晨運行。 ...
  • 1什麼會增加主從延遲? 1 網路不好 2 從庫硬體差 3 索引沒做好,從庫執行慢 4 從庫鎖等待,多見於myisam 5 主庫寫頻繁,從庫單線程執行慢 6 使用row複製,或mix使用行複製 2如何優化,減少延遲時間? 1 如何寫頻繁,水平拆分,減少單片寫數量 2 避免複雜DML操作 3幾個因為主從 ...
  • 1. 配置Yum源及關閉SeLinux 2. 安裝桌面環境(如果未安裝) 3. 安裝軟體包 4. 建立用戶 5. 建立文件夾 6. 配置系統核心參數,Oracle用戶資源限制,Oracle用戶環境變數 7. 編輯主機名 8. 解壓安裝文件 9. 開始安裝 [oracle@localhost ~]$ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...