首頁 資料庫 mysql教程 Sqlserver in 实现 参数化查询 XML类型解决方案

Sqlserver in 实现 参数化查询 XML类型解决方案

Jun 07, 2016 pm 03:12 PM
sqlserver xml 參數 實現 查詢 類型 解決方案

1:如果 参数 是int 类型 : declare @a xml set @a=' rowid1/id/row rowid5/id/row rowid4/id/row rowid3/id/row rowid2/id/row' select * from product where id in ( select d.x.value('./id[1]','int') from @a.nodes('/*') as d(x)) 2:如果 参数 是var

1:如果参数是int类型

declare @a xml
set @a='
1
5
4
3
2'
select * from product where id in (
select d.x.value('./id[1]','int') from @a.nodes('/*') as d(x))

 

2:如果参数是varchar类型

declare @a xml
set @a='
a
b5
c4
d3
e2'
select * from product where pname in (
select d.x.value('./name[1]','varchar(100)') from @a.nodes('/*') as d(x))

 

以第一个为例写的C#简单方法

    <span>public</span> DataSet GetData(Listint><span> idList) {
        System.Text.StringBuilder idXML </span>= <span>new</span><span> System.Text.StringBuilder();
        </span><span>//</span><span> 把IdList转换成idxml(后面要用到的xml<strong>参数</strong>的值)</span>
        <span>foreach</span> (<span>var</span> item <span>in</span><span> idList)
        {
            idXML.AppendFormat(</span><span>"</span><span><row><id>{0}</id></row></span><span>"</span><span>,item);
        }

        System.Text.StringBuilder strSql </span>= <span>new</span><span> System.Text.StringBuilder();
        strSql.Append(</span><span>"</span><span>select * from product where id in (</span><span>"</span><span>);
        </span><span>//</span><span> 解析xml<strong>参数</strong>@a 取出ID 这里可以认为@a是一个特殊的表</span>
        strSql.Append(<span>"</span><span>select d.x.value('./id[1]','int') from @a.nodes('/*') as d(x)</span><span>"</span><span>);

        strSql.Append(</span><span>"</span><span>)</span><span>"</span><span>);
        SqlConnection con </span>= <span>new</span> SqlConnection(<span>"</span><span>数据库连接字符串</span><span>"</span><span>);
        SqlCommand cmd </span>= <span>new</span><span> SqlCommand(strSql.ToString(), con);
        </span><span>//</span><span> <strong>参数</strong>赋值</span>
        SqlParameter[] para = <span>new</span><span> SqlParameter[]{
            </span><span>new</span> SqlParameter(<span>"</span><span>@a</span><span>"</span>,SqlDbType.Xml){Value=<span> idXML.ToString()}
        };
        cmd.Parameters </span>=<span> para;

        </span><span>//</span><span> <strong>查询</strong></span>
        SqlDataAdapter sda = <span>new</span><span> SqlDataAdapter(cmd);
        DataSet ds </span>= <span>new</span><span> DataSet();
        sda.Fill(ds);
        </span><span>return</span><span> ds;
    }</span>
登入後複製

 

如果认为是好文的请不要吝啬您的推荐,写个文章不容易。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24
sqlserver怎麼匯入mdf文件 sqlserver怎麼匯入mdf文件 Apr 08, 2024 am 11:41 AM

匯入步驟如下:將 MDF 檔案複製到 SQL Server 的資料目錄(通常為 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)。在 SQL Server Management Studio(SSMS)中,開啟資料庫並選擇「附加」。點選“新增”按鈕,選擇 MDF 檔案。確認資料庫名稱,點選確定按鈕即可。

sqlserver誤刪資料庫怎麼恢復 sqlserver誤刪資料庫怎麼恢復 Apr 05, 2024 pm 10:39 PM

若誤刪 SQL Server 資料庫,可採取下列步驟還原:停止資料庫活動;備份日誌檔案;檢查資料庫日誌;復原選項:從備份還原;從交易日誌還原;使用 DBCC CHECKDB;使用第三方工具。請定期備份資料庫並啟用交易日誌以防止資料遺失。

sqlserver安裝失敗怎麼樣刪除乾淨 sqlserver安裝失敗怎麼樣刪除乾淨 Apr 05, 2024 pm 11:27 PM

如果 SQL Server 安裝失敗,可透過下列步驟清理:解除安裝 SQL Server刪除註冊表項刪除檔案和資料夾重新啟動計算機

sqlserver刪除不乾淨無法重新安裝怎麼辦 sqlserver刪除不乾淨無法重新安裝怎麼辦 Apr 05, 2024 pm 11:30 PM

SQL Server 刪除不乾淨導致無法重新安裝的問題可以透過以下步驟解決:手動刪除檔案和登錄項目;使用SQL Server 安裝卸載工具;使用第三方卸載工具;檢查Windows 事件檢視器;重新啟動電腦;重新安裝SQL Server。

使用C++實現機器學習演算法:常見挑戰及解決方案 使用C++實現機器學習演算法:常見挑戰及解決方案 Jun 03, 2024 pm 01:25 PM

C++中機器學習演算法面臨的常見挑戰包括記憶體管理、多執行緒、效能最佳化和可維護性。解決方案包括使用智慧指標、現代線程庫、SIMD指令和第三方庫,並遵循程式碼風格指南和使用自動化工具。實作案例展示如何利用Eigen函式庫實現線性迴歸演算法,有效地管理記憶體和使用高效能矩陣操作。

mysql和sqlserver語法有什麼差別 mysql和sqlserver語法有什麼差別 Apr 22, 2024 pm 06:33 PM

MySQL 和 SQL Server 的語法差異主要體現在資料庫物件、資料類型、SQL 語句和其他方面。資料庫物件差異包括儲存引擎和檔案群組的指定方式、索引和約束的建立。資料類型差異涉及數值類型、字元類型和日期時間類型的差異。 SQL 語句差異體現在結果集限制、資料插入、更新和刪除操作等方面。其他差異還包括識別列、視圖和預存程序的建立方式。了解這些差異對於使用不同的資料庫系統時避免錯誤非常重要。

C++ 函式參數型別安全檢查 C++ 函式參數型別安全檢查 Apr 19, 2024 pm 12:00 PM

C++參數類型安全檢查透過編譯時檢查、執行時間檢查和靜態斷言確保函數只接受預期類型的值,防止意外行為和程式崩潰:編譯時類型檢查:編譯器檢查類型相容性。運行時類型檢查:使用dynamic_cast檢查類型相容性,不符則拋出異常。靜態斷言:在編譯時對型別條件進行斷言。

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

See all articles