DB類的學習

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data; //引用三個命名空間
using System.Data.SqlClient;
using System.Configuration;/// <summary>
/// DB 的摘要說明
/// </summary>
public class DB
{public DB(){//// TODO: 在此處添加構造函數邏輯//}/// <summary>/// 用于執行返回單個值的select語句/// </summary>/// <param name="sql">只返回單個值的select語句</param>/// <returns>查到的一個值,查詢失敗返回null</returns>// 定義一個公開的方法,該方法接受一個SQL查詢字符串作為參數,并返回一個object類型的值。  
public object queryOneValue(string sql)  
{  // 從Web.config文件中獲取名為"myDBConnectionString"的數據庫連接字符串。  string connStr = ConfigurationManager.ConnectionStrings["myDBConnectionString"].ConnectionString;  // 使用上面獲取的連接字符串構造一個SqlConnection對象,用于與數據庫建立連接。  SqlConnection conn = new SqlConnection(connStr);  try  {  // 打開數據庫連接。  conn.Open();  // 使用提供的SQL查詢字符串和已建立的數據庫連接構造一個SqlCommand對象。  SqlCommand comm = new SqlCommand(sql, conn);  // 執行SqlCommand對象中的SQL命令,并返回查詢結果中的第一行第一列的值(如果有的話)。  // 這通常用于返回單個值,如COUNT(*)的結果或SELECT TOP 1 ...的結果。  object ret = comm.ExecuteScalar();  // 返回查詢到的值(如果有的話)。  return ret;  }  catch (Exception ex)  {  // 如果在執行過程中發生任何異常,捕獲該異常并返回null。  // 這里應該記錄異常信息以便后續調查,但此示例中未顯示。  return null;  }  finally  {  // 無論是否發生異常,都會執行finally塊中的代碼。  // 檢查數據庫連接是否仍然打開。  if (conn.State == ConnectionState.Open)  {  // 如果連接是打開的,則關閉它。  conn.Close();  }  }  
}// 定義一個公開的方法,該方法接受一個SQL命令字符串作為參數,并返回一個int類型的值。  
// 通常,這個返回值表示受影響的行數。  
public int ExecuteNonQueryCommand(string sql)  
{  // 從Web.config文件中獲取名為"myDBConnectionString"的數據庫連接字符串。  string connStr = ConfigurationManager.ConnectionStrings["myDBConnectionString"].ConnectionString;  // 使用上面獲取的連接字符串構造一個SqlConnection對象,用于與數據庫建立連接。  SqlConnection conn = new SqlConnection(connStr);  try  {  // 打開數據庫連接。  conn.Open();  // 使用提供的SQL命令字符串和已建立的數據庫連接構造一個SqlCommand對象。  SqlCommand comm = new SqlCommand(sql, conn);  // 執行SqlCommand對象中的SQL命令,并返回受影響的行數。  // 這通常用于執行INSERT、UPDATE、DELETE等不返回結果集的命令。  int ret = comm.ExecuteNonQuery();  // 返回受影響的行數。  return ret;  }  catch (Exception ex)  {  // 如果在執行過程中發生任何異常,捕獲該異常并返回一個特殊的值(-1)表示操作失敗。  // 這里應該記錄異常信息以便后續調查,但此示例中未顯示。  return -1;  }  finally  {  // 無論是否發生異常,都會執行finally塊中的代碼。  // 檢查數據庫連接是否仍然打開。  if (conn.State == ConnectionState.Open)  {  // 如果連接是打開的,則關閉它。  conn.Close();  }  }  
}

  1. 使用?ExecuteScalar?時,你應確保SQL查詢返回單個值(或沒有值,這將返回null)。如果查詢返回多行多列的數據,則?ExecuteScalar?將只返回第一行第一列的值,并忽略其他行和列。
  2. 在使用數據庫連接時,使用?try-catch-finally?結構可以確保即使在發生異常的情況下,連接也能被正確關閉。這是一個很好的編程實踐。

"不返回結果集" 指的是執行 SQL 語句后,數據庫不會返回一個可以逐行讀取的數據集(如查詢結果)。對于 SQL 語句,我們可以大致分為兩類:返回結果集的語句和不返回結果集的語句。

返回結果集的語句

這類語句通常用于從數據庫中檢索數據,例如?SELECT?語句。當你執行一個?SELECT?語句時,數據庫會返回一個結果集,你可以遍歷這個結果集來讀取查詢到的數據。

不返回結果集的語句

這類語句通常用于修改數據庫中的數據或結構,而不是檢索數據。以下是一些不返回結果集的 SQL 語句的例子:

  1. 數據修改語句
    • INSERT:向表中插入新行。
    • UPDATE:更新表中的現有行。
    • DELETE:從表中刪除行。
  2. 數據定義語句
    • CREATE:創建新的數據庫、表、索引等。
    • ALTER:修改現有的數據庫、表、索引等。
    • DROP:刪除數據庫、表、索引等。
  3. 其他
    • SET:在事務中設置變量或更改數據庫會話的某些設置。
    • TRUNCATE:刪除表中的所有行,但不記錄單獨的行刪除操作。

當執行這些不返回結果集的語句時,SqlCommand.ExecuteNonQuery()?方法被用于執行命令。它返回一個整數,表示受影響的行數(對于?INSERTUPDATE?和?DELETE?語句)或表示命令是否成功執行(對于?CREATEALTER?和?DROP?語句,盡管不是所有數據庫系統都會為這些命令返回受影響的行數)。

總結

"不返回結果集" 意味著執行 SQL 語句后,你不會得到一個可以逐行讀取的數據集。相反,你可能會得到一個表示受影響的行數的整數,或者只是一個表示命令是否成功執行的確認。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/12905.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/12905.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/12905.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue+ts+vite+pinia+less+echarts 前端可視化 實戰項目

1.初始化前端 輸入 npm init vuelatest 命令 然后 選擇需要的插件2.構建完成后 在終端切換到vue-project文件夾下 npm install 下載依賴 3.下載 less樣式 npm install less less-loader -D 4.下載axios npm install axios 5.下載echarts npm install echarts -S 6.引入中國…

JAVA 的數據類型

Java 是一種靜態類型語言&#xff0c;這意味著在編譯時&#xff0c;變量必須聲明其數據類型。在 Java 中&#xff0c;數據類型可以分為兩大類&#xff1a;基本數據類型&#xff08;又稱原始數據類型&#xff09;和引用數據類型。本文將詳細介紹這兩種數據類型。 一、基本數據類…

戰網國際服加速器用哪個好 暴雪戰網好用加速器介紹

戰網國際版&#xff0c;又稱Battle.net環球版&#xff0c;是暴雪娛樂操盤的全球性游戲互動平臺&#xff0c;它跨越地理界限&#xff0c;服務于全球游戲愛好者。與地區限定版本相異&#xff0c;國際版賦予玩家自由進入暴雪旗下眾多經典游戲的權利&#xff0c;無論身處何方&#…

對比測評3款BI分析工具

前不久&#xff0c;一位準備入職阿里的學弟問我&#xff0c;他要做電商數據分析&#xff0c;電商有龐雜的標簽、模型、數據和業務邏輯&#xff0c;菜鳥應該要具備什么樣的分析能力啊&#xff1f; 我看了他的崗位職責&#xff0c;主要是負責經營決策支持、專題分析和數據看板搭…

leetcode-字符串變形-104

題目要求 思路 1.首先根據ASCII的規則&#xff0c;把字符串大小寫替換&#xff0c;空格保持不變 2.將整個字符串進行翻轉 3.以空格為區間&#xff0c;將區間內的字符串進行翻轉&#xff0c;其中翻轉的函數reverse() 代碼實現 class Solution { public:string trans(string s…

【C語言】通訊錄系統實現

目錄 1、通訊錄系統介紹 2、代碼分裝 3、代碼實現步驟 3.1制作菜單函數以及游戲運行邏輯流程 3.2、封裝人的信息PeoInfo以及通訊錄Contact結構體類型 3.3、初始化通訊錄InitContact函數 3.4、增加聯系人AddContact函數 3.5、顯示所有聯系人ShowContact函數 3.6、刪除聯系人D…

Shell之常用命令

目錄 1.排序工具--sort命令 1.1 快讀查找一個目錄中最大文件 2.去重工具--uniq命令 2.1 分析判斷遠程登錄錯誤次數&#xff0c;禁止該用戶遠程登錄 3.修改工具--tr命令 4.列截取工具--cut命令 5.分割文件工具--split命令 6.合并文件列--paste命令 7.掃描工具--eval命令…

OpenAI和互聯網行業的發展,有著異曲同工之處

當OpenAI首席技術官米拉穆拉提發布桌面版本的ChatGPT和新的旗艦模型—GPT-4o&#xff0c;OpenAI的發展&#xff0c;進入到了一個真正意義上的奇點時刻。 OpenAI的短短26分鐘的發布會&#xff0c;卻依然引發了不少波瀾。 無論是ChatGPT-4o的完全免費&#xff0c;抑或是推出PC桌…

【Linux】常用指令、熱鍵與權限管理

一、常用指令 &#xff08;1&#xff09;ls 功能&#xff1a;列出指定目錄下的所有子目錄與文件 用法&#xff1a;ls &#xff08;選項&#xff09; &#xff08;目錄或文件名&#xff09; 常用選項&#xff1a; -a&#xff1a;列出目錄下的所有文件&#xff0c;包括隱藏…

c語言中數字字符串和數字互轉

#include <getopt.h> #include <stdio.h> #include <stdlib.h>#define MAX_PATH 256 char filename[MAX_PATH 5]; int main(int argc, char** argv) {//數字字符串轉數字const char* kk "689";int zhi atoi(kk) 8;//數字字符串轉doubledoub…

從HTTP遷移到HTTPS:一篇全面的測試方案設計指南

在當今的互聯網世界里&#xff0c;數據安全性日益受到重視。將網站從HTTP遷移到HTTPS已成為提升數據傳輸安全性的重要一步。HTTPS&#xff08;超文本傳輸安全協議&#xff09;通過SSL/TLS協議為客戶端和服務器之間的通信加密&#xff0c;保護數據免受中間人攻擊&#xff08;MIT…

代碼隨想錄訓練營Day 29|力扣39. 組合總和、40.組合總和II、131.分割回文串

1.組合總和 題目鏈接/文章講解&#xff1a; 代碼隨想錄 視頻講解&#xff1a;帶你學透回溯算法-組合總和&#xff08;對應「leetcode」力扣題目&#xff1a;39.組合總和&#xff09;| 回溯法精講&#xff01;_嗶哩嗶哩_bilibili 代碼&#xff1a;&#xff08;未剪枝版 &#xf…

ChatGPT未來可能應用于iPhone?

蘋果接即將與OpenAI達成協議 ChatGPT未來應用于iPhone 前言 就在5月11日&#xff0c;蘋果公司正與OpenAI進行深入討論&#xff0c;計劃在其最新的iOS操作系統中整合OpenAI的先進技術。這一舉措是蘋果公司在為其產品線融入更先進的人工智能功能所做努力的一部分。 目前情況雙方…

vue2 八大組件通信,父子通信,跨層級通信,事件總線,vuex等

文章目錄 什么是組件通信&#xff1f;父子通信流程propsProps 定義Props 作用特點數組寫法對象寫法&#xff08;props校驗&#xff09;簡寫只驗證數據類型&#xff1a;完整寫法&#xff0c;完整的驗證&#xff1a; props父向子傳值用props父傳子在子組件中修改props $emit子向父…

自定義 Gradle 插件進行統一的靜態代碼分析

靜態代碼分析是一項了不起的技術, 它能讓代碼庫更易于維護. 但是, 如果你在不同的版本庫中擁有多個服務(可能由不同的團隊開發), 如何才能讓每個人都遵循既定的代碼風格呢? 一個好辦法是將所有規則封裝在一個插件中, 該插件會在每個項目構建時自動執行所需的驗證. 因此, 在本…

最新版rancher環境配置安裝和集群搭建詳細教程記錄

&#x1f680; 作者 &#xff1a;“二當家-小D” &#x1f680; 博主簡介&#xff1a;?前荔枝FM架構師、阿里資深工程師||曾任職于阿里巴巴擔任多個項目負責人&#xff0c;8年開發架構經驗&#xff0c;精通java,擅長分布式高并發架構,自動化壓力測試&#xff0c;微服務容器化k…

2024-05-15 問AI: 介紹一下 , Tacotron系列

文心一言 Tacotron系列是由谷歌開發的&#xff0c;主要用于文本到語音&#xff08;TTS&#xff09;轉換的模型。該系列模型基于端到端的序列到序列&#xff08;Seq2Seq&#xff09;架構&#xff0c;能夠直接從文本中生成聽起來自然的語音。 Tacotron模型是首個端到端的TTS深度…

BGP學習三:BGP路由優選12條規則,閃亮登場啦啦啦啦啦

目錄 一.BGP策略工具 &#xff08;1&#xff09;Router-policy作用 &#xff08;2&#xff09;組成部分 &#xff08;3&#xff09;router-policy注意事項 二.優選規則 ①丟棄下一跳不可達 (1)優選prefered-value值大的路由 1.首選優先級 (2)優選local-preference(本地…

Fast-Poisson-Image-Editing代碼介紹(二)

目錄 2.fpei文件下 2.6 number_solver.py 2.7 process.py 2.8 taichi_solver.py 3. 算法總結 4. 代碼運行 4.1 測試 4.2 基于GUI后端自定義框輸出編輯圖像結果 4.2.1 下載open-cv 4.2.2 輸入命令 4.2.3 自定義框 4.2.4 按ESC退出 接續Fast-Poisson-Image-Editing代碼…

企業研發必備網絡:這些關鍵特性,你get了嗎?

對于以研發為核心的企業&#xff0c;如軟件開發、生物制藥、智能汽車等&#xff0c;安全、穩定的研發網絡可是他們業務發展不可或缺的。那么&#xff0c;這些研發網絡究竟有哪些獨特之處&#xff0c;又能為企業帶來哪些價值呢&#xff1f; 首先&#xff0c;我們知道企業研發常常…