A. sql裡面TEXT類型約束
text 類型不支持函數操作的
你可以考慮使用 nvarchar(max)
B. sql server 使用sqlparameter函數時對text類型應該傳多大的值
在c#中執行sql語句時傳遞參數的小經驗
1、直接寫入法:
例如:
int Id =1;
string Name="lui";
cmd.CommandText="insert into TUserLogin values("+Id+",'"+Name+"')";
因為Id是數值,所以在傳遞的時候只需要在sql字元串中用"+Id+"即可實現,而 Name是字元串,所以在傳遞的時候還需要在"+Name+"兩邊各加一個單引號(')來 實現;
2、給命令對象添加參數法:
例如:
int Id =1;
string Name="lui";
cmd.CommandText="insert into TUserLogin values(@Id,@Name)";
//上條語句中直接在sql語句中寫添加的參數名,不論參數類型都是如此.
SqlParameter para=new SqlParameter("@Id",SqlDbType.int,4);//生成一個名字為@Id的參數,必須以@開頭表示是添加的參數,並設置其類型長度,類型長度與資料庫中對應欄位相同
para.Value=Id;//給參數賦值
cmd.Parameters.Add(para);//必須把參數變數添加到命令對象中去。
//以下類似
para=new SqlParameter("@Name",SqlDbType.VarChar,16);
para.Value=Name;
com.Parameters.Add(para);
...然後就可以執行資料庫操作了。
聲明:本帖轉自 http://www.knowsky.com/339188.html
在此對本帖原創作者,致以最誠摯的謝意!
=============================================
SqlParameter用法
SqlParameter[] parameters = { new SqlParameter("@a", "a1"), new SqlParameter("@b", "b1") };
string strReturn = "";
StringBuilder strBulResult = new StringBuilder();
foreach (SqlParameter parameter in parameters)
{
strBulResult.Append(parameter.ParameterName);
strBulResult.Append(":");
strBulResult.Append(parameter.SqlValue);
strBulResult.Append("\n");
}
strReturn = strBulResult.ToString();
聲明:本帖轉自 http://hi..com/daxiongmao_adi/blog/item/d7ac6ccdd75348540eb34553.html
在此對本帖原創作者,致以最誠摯的謝意!
=============================================
SqlParameter用法
關於Sql注入的基本概念,相信不需多說,大家都清楚,經典的注入語句是' or 1=1--
單引號而截斷字元串,「or 1=1」的永真式的出現使得表的一些信息被暴露出來,如果sql語句是select * from 的話,可能你整個表的信息都會被讀取到,更嚴重的是,如果惡意使用都使用drop命令,那麼可能你的整個資料庫得全線崩潰。
當然,現在重點不是講sql注入的害處,而是說說如何最大限度的避免注入問題。
sql注入的存在在最大危害,是sql的執行語句沒有和控制語句分開,我們想要select一些東西,但用戶可能拼出' or 1=1甚至再加上delete/update/drop,後來是屬於控制語句了,所以要避免sql的注入,就必須把查詢語句與控制語句分開。
SqlParameter給我們提供了一個很好的類,有了它,我們可以不現拼接字元串,也可以不再擔心單引號帶來的慘劇,因為,這一切會有人來為我們完成的。
簡單的給個示例
傳統的查詢語句的sql可能為
string sql="select * from users where user_id='"+Request.QueryString["uid"]+"'";
很顯然,我們在這里拼接了字元串,這就給sql注入留下了可乘之機。
現在,我們要改寫這樣的語句,使用SqlParameter來做
SqlCommand SqlCmd = new SqlCommand(sql, SqlConn);
SqlParameter _userid = new SqlParameter("uid", SqlDbType.Int);
_userid.Value = Request.QueryString["u_id"];
SqlCmd.Parameters.Add(_userid);
這樣,我們可以保證外接參數能被正確的轉換,單引號這些危險的字元也會轉義了,不會再對庫造成威脅。
當然,這僅是一個示例而已,在真實的情況下,可能你還要對 Request.QueryString["u_id"]進行必要的檢測與分析,這樣才安全
所以,使用參數化的sql語句,是一種很好的做法
Dim sql As StringBuilder = New StringBuilder()
sql.Append("")
sql.Append("SELECT * FROM test")
sql.Append(" WHERE a= @p1 ")
Dim command As SqlCommand = dac.CreateCommand(sql.ToString()) 'dac為自己寫的類
Dim param As SqlParameter = New SqlParameter()
param .ParameterName = "@p1"
param .SqlDbType = SqlDbType.NVarChar
param .Value = b 'b為該函數的參數(ByVal b as String)
command .Parameters.Add(param)
Dim reader As SqlDataReader = command.ExecuteReader()
SqlParameter 構造函數
SqlParameter 構造函數 (String, SqlDbType, Int32, ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object, String, String, String)
初始化 SqlParameter 類的一個新實例,該類使用參數名、參數的類型、參數的長度、方向、精度、小數位數、源列名稱、DataRowVersion 值之一、用於源列映射的布爾值、SqlParameter 的值、此 XML 實例的架構集合所在的資料庫的名稱、此 XML 實例的架構集合所在的關系架構以及此參數的架構集合的名稱。
命名空間: System.Data.SqlClient
程序集: System.Data(在 system.data.dll 中)
C#
public SqlParameter (
string parameterName,
SqlDbType dbType,
int size,
ParameterDirection direction,
byte precision,
byte scale,
string sourceColumn,
DataRowVersion sourceVersion,
bool sourceColumnNullMapping,
Object value,
string xmlSchemaCollectionDatabase,
string ,
string xmlSchemaCollectionName
)
參數
parameterName
要映射的參數的名稱。
dbType
SqlDbType 值之一。
size
參數的長度。
direction
ParameterDirection 值之一。
precision
要將 Value 解析為的小數點左右兩側的總位數。
scale
要將 Value 解析為的總小數位數。
sourceColumn
源列的名稱。
sourceVersion
DataRowVersion 值之一。
sourceColumnNullMapping
如果源列可為空,則為 true;如果不可為空,則為 false。
value
一個 Object,它是 SqlParameter 的值。
xmlSchemaCollectionDatabase
此 XML 實例的架構集合所在的資料庫的名稱。
包含此 XML 實例的架構集合的關系架構。
xmlSchemaCollectionName
此參數的架構集合的名稱。
備注
如果未在 size 和 precision 參數中顯式設置 Size 和 Precision,則從 dbType 參數的值推斷出它們。
SqlParameter 類
表示 SqlCommand 的參數,也可以是它到 DataSet 列的映射。無法繼承此類。
有關此類型所有成員的列表,請參閱 SqlParameter 成員。
System.Object
System.MarshalByRefObject
System.Data.SqlClient.SqlParameter
[Visual Basic]
NotInheritable Public Class SqlParameter
Inherits MarshalByRefObject
Implements IDbDataParameter, IDataParameter, ICloneable
[C#]
public sealed class SqlParameter : MarshalByRefObject,
IDbDataParameter, IDataParameter, ICloneable
[C++]
public __gc __sealed class SqlParameter : public
MarshalByRefObject, IDbDataParameter, IDataParameter, ICloneable
[JScript]
public class SqlParameter extends MarshalByRefObject implements
IDbDataParameter, IDataParameter, ICloneable
線程安全
此類型的所有公共靜態(Visual Basic 中為 Shared)成員是線程安全的。但不保證任何實例成員是線程安全的。
備注
參數名稱不區分大小寫。
示例
[Visual Basic, C#, C++] 下面的示例通過 SqlDataAdapter 中的 SqlParameterCollection 集合創建 SqlParameter 的多個實例。這些參數用於從數據源中選擇數據並將數據放在 DataSet 中。此示例假定已經用適當的架構、命令和連接創建了 DataSet 和 SqlDataAdapter。
[Visual Basic]
Public Sub AddSqlParameters()
' ...
' create myDataSet and myDataAdapter
' ...
myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", SqlDbType.VarChar, 80).Value = "toasters"
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", SqlDbType.Int).Value = 239
myDataAdapter.Fill(myDataSet)
End Sub 'AddSqlParameters
[C#]
public void AddSqlParameters()
{
// ...
// create myDataSet and myDataAdapter
// ...
myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", SqlDbType.VarChar, 80).Value = "toasters";
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", SqlDbType.Int).Value = 239;
myDataAdapter.Fill(myDataSet);
}
[C++]
public:
void AddSqlParameters()
{
// ...
// create myDataSet and myDataAdapter
// ...
myDataAdapter->SelectCommand->Parameters->Add(S"@CategoryName", SqlDbType::VarChar, 80)->Value = S"toasters";
myDataAdapter->SelectCommand->Parameters->Add(S"@SerialNum", SqlDbType::Int)->Value = __box(239);
myDataAdapter->Fill(myDataSet);
}
[JScript] 沒有可用於 JScript 的示例。若要查看 Visual Basic、C# 或 C++ 示例,請單擊頁左上角的「語言篩選器」按鈕 。
要求
命名空間: System.Data.SqlClient
平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精簡版
程序集: System.Data (在 System.Data.dll 中)
使用SqlParameter
SqlParameter[] p =
{
SqlHelper.MakeInParam("@EntryID",SqlDbType.Int,4,ev.EntryID),
SqlHelper.MakeInParam("@BlogID",SqlDbType.Int,4,ev.BlogID),
SqlHelper.MakeInParam("@URL",SqlDbType.NVarChar,255,DataHelper.CheckNull(ev.ReferralUrl)),
SqlHelper.MakeInParam("@IsWeb",SqlDbType.Bit,1,ev.PageViewType)
};
SqlHelper.ExecuteNonQuery(conn,CommandType.StoredProcere,"blog_TrackEntry",p);
答疑:SqlParameter賦值之後怎麼添加值
用SqlCommand我知道用add
但我想問的是 SqlParameter
例如
SqlParameter parm = new SqlParameter(PARM_ORDER_ID, SqlDbType.Int);
parm.Value = orderId;
之後能不能再改parm添加一個值
因為我寫了個方法是傳遞SqlParameter類型的參數
但有時要做些判斷
C. 如何對Sql里的Text類型進行操做(截取文本中
text、ntext類型的欄位不能和 varchar類型進行add(+)運算,操作TEXT類型欄位的和操作普通其它字元串類型欄位是不一樣的,這里需要用updatetext語句才行。
表:
CREATE TABLE [dbo].[test] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[mytext] [text] COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
數據:
id mytext
1 aaaa
在TEXT類型中追加字元串:
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(mytext) from test
UPDATETEXT test.mytext @ptrval null 0 'bbbb'
運行結果:
id mytext
1 aaaabbbb
追加成功,這個是在資料庫中完成的。
D. sql語句查詢出來的一個值賦 給一個控制項的text屬性 問題
你需要建立Connection,執行SqlCommand,才能得到結果,
this.labl1.text= select id from table where id='1' 這個東西C#的編譯器可不會認.
而且select id from table where id='1'這個是個什麼語句?你不如直接寫this.label1.Text = "1";
你這兩個問題是一個問題.Label的Text就是string
E. 各位高手,我與有一個問題:sql語句中的where子句中含有變數(如:text1.text)怎麼寫資料庫為excel
看你用什麼語言開發了
寫個函數,參數是變數text1.text,傳進去以後組織SQL
string sql="select a from test where a='"+_a+"'";
然後執行獲取結果
F. SQL資料庫中數據類型ntext和text的區別
ntext和text一樣用來保存大量的文字數據,不過text用單位元組保存數據 ,ntext固定用雙位元組保存數據. ntext保存的是Uncode的字元 ,
ntext支持跨語言平台。
ntext:
可變長度 Unicode 數據的最大長度為 230 -
1 (1,073,741,823) 個字元。存儲大小是所輸入字元個數的兩倍(以位元組為單位)。ntext 在 SQL-92 中的同義詞是 national
text。
ntext中存數據是按雙位元組存的 ,顯示不了NTEXT你換一下recordset打開方式就行了
text:
伺服器代碼頁中的可變長度非 Unicode 數據的最大長度為 231-1 (2,147,483,647)
個字元。當伺服器代碼頁使用雙位元組字元時,存儲量仍是 2,147,483,647 位元組。存儲大小可能小於 2,147,483,647 位元組(取決於字元串)。
char、varchar、text和nchar、nvarchar、ntext的區別
1、CHAR。CHAR存儲定長數據很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間,不足的自動用空格填充。
2、VARCHAR。存儲變長數據,但存儲效率沒有CHAR高。如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為
VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麼「+1」呢?這一個位元組用於保存實際使用了多大的長度。從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。
3、TEXT。text存儲可變長度的非Unicode數據,最大長度為2^31-1(2,147,483,647)個字元。
4、
NCHAR、NVARCHAR、NTEXT。這三種從名字上看比前面三種多了個「N」。它表示存儲的是Unicode數據類型的字元。我們知道字元中,英
文字元只需要一個位元組存儲就足夠了,但漢字眾多,需要兩個位元組存儲,英文與漢字同時存在時容易造成混亂,Unicode字元集就是為了解決字元集這種不兼
容的問題而產生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。nchar、nvarchar的長度是在1到4000之間。和
char、varchar比較起來,nchar、nvarchar則最多存儲4000個字元,不論是英文還是漢字;而char、varchar最多能存儲
8000個英文,4000個漢字。可以看出使用nchar、nvarchar數據類型時不用擔心輸入的字元是英文還是漢字,較為方便,但在存儲英文時數量
上有些損失。
對於什麼時候用varchar和nvarchar沒有說一定的.
也就是說一個漢字既可以存在varchar中,也可以存在nvarchar中.
那麼對於漢字或者Unicode
數據到底存在varchar和nvarchar有什麼區別呢?
下面例子說明一下:一個漢字佔varchar(2),只佔nvarchar(1),
而字母只佔varchar(1),那麼在資料庫欄位求長度的時候,用varchar你就不一定知道它確切的知道它到底有幾個字,如果用nvarchar,
那麼漢字也是nvarchar(1),字母也是nvarchar(1),那麼已經很明顯了.
區別2:varchar的檢索快於nvarchar,雖然是這樣但微軟下一個版本將統一nvarchar,聽說的
管理 ntext、text 和 image
數據
Microsoft? SQL Server? 的 ntext、text 和 image 數據類型在單個值中可以包含非常大的數據量(最大可
達
2 GB)。單個數據值通常比應用程序在一個步驟中能夠檢索的大;某些值可能還會大於客戶端的可用虛擬內存。因此,
在檢索這些值時,通常需要一些特殊的步驟。
如果 ntext、text 和 image 數據值不超過 Unicode
串、字元串或二進制串的長度(分別為 4,000 個字元、8,000 個字
符和 8,000 個位元組),就可以在 SELECT、UPDATE 和
INSERT 語句中引用它們,其引用方式與較小的數據類型相同。例
如,包含短值的 ntext 列可以在 SELECT 語句的選擇列表中引用,這與
nvarchar 列的引用方式相同。引用時必須遵守一
些限制,例如不能在 WHERE 子句中直接引用 ntext、text 或 image
列。這些列可以作為返回其它數據類型(例如
ISNULL、SUBSTRING 或 PATINDEX)的某個函數的參數包含在 WHERE
子句中,也可以包含在 IS NULL、IS NOT NULL 或
LIKE 表達式中。
處理較大的數據值
但是,如果 ntext、text 和 image 數據值較大,則必須逐塊處理。Transact-SQL 和資料庫 API 均包含使應用程序可以
逐塊處理 ntext、text 和 image 數據的函數。
資料庫 API 按照一種通用的模式處理長 ntext、text 和
image 列:
若要讀取一個長列,應用程序只需在選擇列表中包含 ntext、text 或 image
列,並將該列綁定到一個程序變數,該變數
應足以容納適當的數據塊。然後,應用程序就可以執行該語句,並使用 API
函數或方法將數據逐塊檢索到綁定的變數中。
若要寫入一個長列,應用程序可使用參數標記 (?) 在相應位置代替
ntext、text 或 image 列中的值,以執行 INSERT
或 UPDATE 語句。參數標記(對 ADO
而言則為參數)被綁定到一個足以容納數據塊的程序變數上。應用程序進入循環,在
循環中先將下一組數據移到綁定的變數中,然後調用 API
函數或方法寫入數據塊。這一過程將反復進行,直到整個數據值
發送完畢。
使用 text in row
在 Microsoft
SQL Server 2000 中,用戶可以在表上啟用 text in row 選項,以使該表能夠在其數據行中存儲 text、
ntext 或
image 數據。
若要啟用該選項,請執行 sp_tableoption 存儲過程,將 text in row 指定為選項名並將 on
指定為選項值。BLOB(二進
制大對象:text、ntext 或 image 數據)行中可以存儲的默認最大大小為 256 位元組,但是值的范圍可以從
24 到 7000。
若要指定默認值以外的最大大小,請指定該范圍內的整數作為選項值。
如果應用下列條件,則將
text、ntext 或 image 字元串存儲在數據行中:
啟用 text in row。
字元串的長度比 @OptionValue 所指定的限制短
數據行中有足夠的可用空間。
當 BLOB
字元串存儲在數據行中時,讀取和寫入 text、ntext 或 image 字元串可以與讀取或寫入字元串和二進制字元串
一樣快。SQL Server
不必訪問單獨的頁以讀取或寫入 BLOB 字元串。
如果 text、ntext 或 image
字元串比行中所指定的限制或可用空間大,則將指針存儲在該行中。在行中存儲 BLOB 字元
串的條件仍然適用,但是:數據行中必須有足夠的空間容納指針。
有關更多信息,請參見 sp_tableoption。
使用文本指針
如果未指定 text in
row 選項,text、ntext 或 image 字元串將存儲在數據行外;只有這些字元串的文本指針駐留在數
據行中。文本指針指向由內部指針生成的樹的根節點,而這些內部指針映射到實際存儲(text、ntext 或 image 數據的)
字元串段的頁。
SQL Server 2000 中的行文本指針與 SQL Server 早期版本中的文本指針不同。行文本指針的行為就象 BLOB
數據的文件
句柄;早期的文本指針功能則象 BLOB 數據的地址。因此,在使用行文本指針時,請記住下列特性:
重要 雖然游標中允許有行文本,但卻不允許有行文本指針。如果嘗試聲明包含行文本指針的游標,SQL Server 將返回錯
誤信息(8654、16、1、"A cursor plan could not be generated for the given statement
because it contains
textptr(inrow lob)."、1033)。
數字
對於每個資料庫,每個事務最多允許 1024 個活動行文本指針。
鎖定
當用戶獲取活動文本指針時,SQL Server
2000 在第一個用戶控制文本指針時鎖定數據行,並確保沒有其他用戶修改或刪
除該行。鎖在文本指針變為無效時被釋放。若要使文本指針無效,請使用
sp_invalidate_textptr。
當事務的隔離級別是未提交讀或者資料庫為"只讀"模式時,文本指針不能用於更新 BLOB
值。
當資料庫為"單用戶"模式時,SQL Server 2000 不鎖定數據行。
為舉例說明,給出下面的表:
CREATE TABLE t1 (c1 int, c2 text)
EXEC
sp_tableoption 't1', 'text in row', 'on'
INSERT t1 VALUES ('1', 'a')
下面的事務將會成功:
INSERT t1 VALUES ('1','This is text.')
SET
TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
GO
BEGIN TRAN
DECLARE @ptr varbinary(16)
SELECT @ptr = textptr(c2)
FROM t1
WHERE c1 = 1
READTEXT t1.c2 @ptr 0 5
COMMIT TRAN
GO
下面的事務將會失敗:
SET TRANSACTION ISOLATION LEVEL READ
UNCOMMITTED
GO
BEGIN TRAN
DECLARE @ptr varbinary(16)
SELECT @ptr = textptr(c2)
FROM t1
WHERE c1 = 1
WRITETEXT t1.c2
@ptr 'xx'
COMMIT TRAN
GO
持續時間
行文本指針僅在事務內有效。提交事務時,文本指針變為無效。
在某個事務內,當發生下列任一操作時,行文本指針可能無效:
會話結束。
刪除該事務中的數據行。(其它事務無法刪除數據行,因為該行包含鎖。)
文本指針所在的表的架構已更改。使文本指針無效的架構更改操作包括:創建或除去聚集索引,改變或除去表,截斷表,
通過
sp_tableoption 更改 text in row 選項,以及執行 sp_indexoption。
使用前面的示例,下列腳本在 SQL
Server 早期版本中有效,但在 SQL Server 2000 中將生成錯誤。
DECLARE @ptrval
varbinary(16)
PRINT 'get error here'
SELECT @ptrval =
TEXTPTR(c2)
FROM t1
WHERE c1 = 1
READTEXT t1.c2 @ptrval 0
1
在 SQL Server 2000 中,必須在事務內使用行文本指針:
BEGIN TRAN
DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(c2)
FROM
t1
WHERE c1 = 1
READTEXT t1.c2 @ptrval 0 1
COMMIT
NULL 文本
可以在由 INSERT 生成的 NULL 文本上獲得行文本指針。而在以前,只有將 BLOB 更新為 NULL
後才能獲得文本指針。
例如,下列代碼在 SQL Server 7.0 中無效,但在 SQL Server 2000
中有效。
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
GO
INSERT INTO t1 VALUES (4, NULL)
BEGIN TRAN
DECLARE @ptrval
VARBINARY(16)
SELECT @ptrval = TEXTPTR(c2)
FROM t1
WHERE c1 =
4
WRITETEXT t1.c2 @ptrval 'x4'
COMMIT
在 SQL Server 7.0
中,必須執行下列操作:
INSERT INTO t1 VALUES (4, NULL)
UPDATE t1
SET c2 = NULL
WHERE c1 = 4
DECLARE @ptrval VARBINARY(16)
SELECT @ptrval = TEXTPTR(c2)
FROM t1
WHERE c1 = 4
WRITETEXT
t1.c2 @ptrval 'x4'
下表匯總差別。
差別 行文本指針 非行文本指針
數字
對於每個資料庫,每個事務最多允許 1024 個活動行文本指針。 無限制。
鎖定 將數據行一直 S 鎖定到指針變為無效為止。
當事務為"未提交讀"或資料庫為"單用戶"或"只讀"模式時不獲取鎖。
不鎖定數據行。
持續時間
事務或會話結束、刪除行或更改表的架構時變為無效。 刪除行時變為無效。
NULL 文本 插入 NULL 文本後可立即獲取。 只有更新後才能獲取。
通過資料庫 API 使用 ntext、text 和 image 數據
這一部分概述資料庫 API 處理
ntext、text 和 image 數據的方式:
ADO
ADO 可以將 ntext、text 或 image
列或參數映射為 Field 或 Parameter 對象。使用 GetChunk 方法逐塊檢索數據,使
用 AppendChunk
方法逐塊寫數據。有關更多信息,請參見管理 Long 數據類型。
OLE DB
OLE DB 使用
ISequentialStream 介面支持 ntext、text 和 image 數據類型。ISequentialStream::Read
方法逐塊讀取
長數據,ISequentialStream::Write 方法將長數據逐塊寫入資料庫。有關更多信息,請參見 BLOB 和 OLE
對象。
ODBC
ODBC 具有一種稱為"執行中的數據"的功能,可用於處理長數據的 ODBC
數據類型:SQL_WLONGVARCHAR (ntext)、
SQL_LONGVARCHAR (text) 和 SQL_LONGVARBINARY
(image)。這些數據類型被綁定到某個程序變數上。這樣一來,就可以調
用 SQLGetData 逐塊檢索長數據,調用 SQLPutData
逐塊發送長數據。有關更多信息,請參見管理 text 和 image 列。
DB-Library
DB-Library
應用程序也是將 ntext、text 和 image 列綁定到程序變數上。DB-Library 函數 dbtxtptr 用於獲取指向數
據庫中長列出現位置的指針,dbreadtext 則用來逐塊讀取長數據。dbwritetext、dbupdatetext 和 dbmoretext
之類的函
數用於逐塊寫入長數據。
說明 不支持使用 DB-Library 訪問行文本
G. sql語句查詢出來的一個值賦 給一個控制項的text屬性 問題
你需要建立Connection,執行SqlCommand,才能得到結果,
this.labl1.text=
select
id
from
table
where
id='1'
這個東西C#的編譯器可不會認.
而且select
id
from
table
where
id='1'這個是個什麼語句?你不如直接寫this.label1.Text
=
"1";
你這兩個問題是一個問題.Label的Text就是string
H. 如何將TEXT內容寫入SQL語句中
字元串:
select * from step where 編號A='" & Text1(10).Text & " ' order by 編號B
是數字:
select * from step where 編號A=" & Text1(10).Text & " order by 編號B
I. SQL中READTEXT函數...的問題,高手》》》
不要學了,微軟將刪除這三條語句。用 substring、update .with 來替換。
J. SQL SERVER 2000中,用哪個命令來讀取TEXT變數
TEXTPTR(column)函數,
TEXTPTR函數返回一個指向存儲文本的第一個資料庫頁的指針其返回值是一個VARBINARY16類型的二進制字元串如果數據類型為TEXT,NTEXT或IMAGE的列沒有賦予初值則TEXTPTR函數返回一個NULL指針
它也是要和readtext一起用的,下面是個例子:
USE pubs
GO
DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(pr_info)
FROM pub_info pr INNER JOIN publishers p
ON pr.pub_id = p.pub_id
AND p.pub_name = 'New Moon Books'
READTEXT pub_info.pr_info @ptrval 1 25
GO