Ⅰ C#中使用動態sql問題 新手 急!!!!!!!!!!滿意加50分!!!!!!
用什麼動態sql啊,這種情況下,把用敏冊衫戶輸入的的欄位寫在C#的sql語句中就好了,又不是要你在sql中來實現動態欄位查詢。
所謂的動態sql,說簡單點就是在sql查詢中,姿腔以字元串的方式組合查詢sql語句,最後使用exec關鍵字來執行這個組合的查詢字元串:
declare @sql varchar(500)
set @sql='橋腔select top 1 from master.sys.objects'
exec (@sql)
就是一段簡單的動態sql
Ⅱ 怎樣使c語言里嵌入SQL語言急!急!
資料庫會提供訪問方式, 例如ODBC和API。在C語言中將SQL語句封裝後傳給ODBC或API由他們完成對資料庫的操作。SQL語句不是直接「嵌入」到C語言里的。
具體方法要查看不同資料庫的開發文檔。
Ⅲ 純C++語言使用SQL語句
樓主牛逼啊,正在學習C++,請問你是怎麼實現連接資料庫的能分析下部.
返回錯誤一般有兩種.
首先你把你的 select 語句修改 為 select getdate() 這樣直接回返回一直時間,這個是去確認信檔到底是問題在手禪你的SQL語句還是你C++程序本身獲取數據有問題.
如果修改了 就正確滑薯亂了,那你就看看 你的SQL語句是不是有問題
Ⅳ 怎麼用c#代碼在sql中建立新的資料庫
一般建資料庫都是在資料庫軟體中新建的,然後再連接資料庫
Ⅳ 關於C語言連接SQL資料庫…
1、配置ODBC數據源。
2、使用SQL函數進行連接。
對於1、配置數據源,配置完以後就可以編程操作資料庫了。
對於2、使用SQL函數進行連接,參考代碼如下:
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
void main()
{
HENV henv; //環境句柄
HDBC hdbc; //數據源句柄
HSTMT hstmt; //執行語句句柄
unsigned char datasource[]="數據源名稱"; //即<a href="https://www..com/s?wd=ODBC&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">ODBC</a>源中設置的源名稱
unsigned char user[]= "用戶名"; //資料庫的帳戶名
unsigned char pwd[]= "密碼"; //資料庫的密碼
unsigned char search[]="select xm from stu where xh=0";
SQLRETURN retcode; //記錄各SQL函數的返回情況
// 分配環境句柄
retcode= SQLAllocEnv(&henv); // 等介於 SQLAllocHandle(SQL_HANDLE_ENV, SQL_<a href="https://www..com/s?wd=NULL&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">NULL</a>_HANDLE, &henv);
// 設置ODBC環境版本號為3.0
retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
// 分配連接句柄
retcode= SQLAllocConnect(henv,&hdbc); // 等介於 SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
//設置連接屬性,登錄超時為*rgbValue秒(可以沒有)
// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0);
//直接連接數據源
// 如果是windows身份驗證,第二、三參數可以是<a href="https://www..com/s?wd=NULL&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">NULL</a>,也可以是任何字串
//SQL_NTS 即 "<a href="https://www..com/s?wd=Null&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">Null</a>-Terminated String"
retcode= SQLConnect(hdbc,datasource, SQL_NTS, user, SQL_NTS , pwd, SQL_NTS );
//分配語句句柄
retcode= SQLAllocStmt(hdbc,&hstmt); // 等介於 SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
//直接執行查詢語句
retcode=SQLExecDirect(hstmt,search,SQL_NTS);
//將數據緩沖區綁定資料庫中的相應欄位(i是查詢結果集列號,queryData是綁定緩沖區,BUFF_LENGTH是緩沖區長度)
SQLBindCol(hstmt, i, SQL_C_CHAR, queryData[i-1], BUFF_LENGTH, 0);
//遍歷結果集到相應緩沖區 queryData
SQLFetch(hstmt);
/*
*對遍歷結果的相關操作,如顯示等
*/
//注意釋放順序,否則會造成未知錯誤!
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
}
代碼看上去很復雜,其實都可以直接復制。其中需要改的是數據源名稱、資料庫用戶名、資料庫密碼和SQL語句。
然後就是SQLFetch後得到結果集後,如何使用的問題了。
在下面的注釋部分 填寫你的處理代碼即可。
/*
*對遍歷結果的相關操作,如顯示等
*/
Ⅵ c語言中的sql寫法
前面是定義了一個存儲過程,使用的時候用EXEC SQL FETCH c5 INTO :city,:flag,:accnum;也是執行的過程,>=是大於等於的意思
Ⅶ 用c語言怎樣連接sql資料庫
SQL 有API的,包含頭文件和連接使用相應的.lib就可以
~
~
~
Ⅷ 如何用C實現對SQL資料庫的操作
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "util.h" #include <sqlca.h>`` EXEC SQL INCLUDE SQLCA;main(){EXEC SQL BEGIN DECLARE SECTION; char firstname[13]; char userid[9]; char passwd[19]; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT TO sample; EXEC SQL SELECT FIRSTNME INTO :firstname FROM employee WHERE LASTNAME = 'JOHNSON'; printf( "First name = %s\n", firstname ); EXEC SQL CONNECT RESET;return 0;}上面是一個簡單的靜態嵌入SQL語句的應用程序。它包括了嵌入SQL的主要部分: (1)中的include SQLCA語句定義並描述了SQLCA的結構。SQLCA用於應用程序和資料庫之間的通訊,其中的SQLCODE返回SQL語句執行後的結果狀態。 (2)在BEGIN DECLARE SECTION和END DECLARE SECTION之間定義了宿主變數。宿主變數可被SQL語句引用,也可以被C語言語句引用。它用於將程序中的數據通過SQL語句傳給資料庫管理器,或從資料庫管理器接收查詢的結果。在SQL語句中,主變數前均有「:」標志以示區別。 (3)在每次訪問資料庫之前必須做CONNECT操作,以連接到某一個資料庫上。這時,應該保證資料庫實例已經啟動。 (4)是一條選擇語句。它將表employee中的LASTNAME為「JOHNSON」的行數據的FIRSTNAME查出,並將它放在firstname變數中。該語句返回一個結果。可以通過游標返回多個結果。當然,也可以包含update、insert和delete語句。 (5)最後斷開資料庫的連接。 從上例看出,每條嵌入式SQL語句都用EXEC SQL開始,表明它是一條SQL語句。這也是告訴預編譯器在EXEC SQL和「;」之間是嵌入SQL語句。
Ⅸ 如何在C++中插入sql語句
嵌入式C 的話建議使用ProC或者SQL Server的嵌入式C
sql server 的話是
EXEC SELECT COUNT(id) INTO n FROM TABLE1
需要用工具轉換為。c文件才能編譯
Ⅹ 當我在C中嵌入一段SQL語句大致為「insert into table B select * from table A 」發現總是少數據,為什麼
你在SQL裡面執行 insert into table B select * from table A 試試,少數據都會有埋橘報錯的彎亂團,陪做一般來說是B的規則限制了