SqlCeParameterCollection 類別
收集與 SqlCeCommand 相關的所有參數,以及這些參數的 DataSet 資料行個別對應。
繼承階層
System.Object
System.MarshalByRefObject
System.Data.Common.DbParameterCollection
System.Data.SqlServerCe.SqlCeParameterCollection
命名空間: System.Data.SqlServerCe
組件: System.Data.SqlServerCe (在 System.Data.SqlServerCe.dll 中)
語法
'宣告
Public NotInheritable Class SqlCeParameterCollection _
Inherits DbParameterCollection
'用途
Dim instance As SqlCeParameterCollection
public sealed class SqlCeParameterCollection : DbParameterCollection
public ref class SqlCeParameterCollection sealed : public DbParameterCollection
[<SealedAttribute>]
type SqlCeParameterCollection =
class
inherit DbParameterCollection
end
public final class SqlCeParameterCollection extends DbParameterCollection
SqlCeParameterCollection 型別公開下列成員。
屬性
名稱 | 說明 | |
---|---|---|
Count | 取得集合中的 SqlCeParameter 物件數目。 (覆寫 DbParameterCollection.Count。) | |
IsFixedSize | 基礎結構。 (覆寫 DbParameterCollection.IsFixedSize。) | |
IsReadOnly | 基礎結構。 (覆寫 DbParameterCollection.IsReadOnly。) | |
IsSynchronized | 基礎結構。 (覆寫 DbParameterCollection.IsSynchronized。) | |
Item[Int32] | 取得或設定指定索引處的 SqlCeParameter。 | |
Item[String] | 取得或設定具有指定名稱的 SqlCeParameter。 | |
SyncRoot | 基礎結構。 (覆寫 DbParameterCollection.SyncRoot。) |
上層
方法
上層
明確 繼承 實作
名稱 | 說明 | |
---|---|---|
IList.Item | (繼承自 DbParameterCollection) | |
IDataParameterCollection.Item | (繼承自 DbParameterCollection) |
上層
備註
集合中的參數數目必須等於命令文字中參數替代符號的數目。否則,.NET Compact Framework Data Provider for SQL Server Compact 可能會引發錯誤。
範例
下列範例會透過 SqlCeDataAdapter 內的 SqlCeParameterCollection 集合,建立 SqlCeParameter 的多個執行個體。這些參數用於選取資料來源內的資料。接著會將資料放入 DataSet。這個範例假設已使用適當的結構描述、命令和連接建立了 DataSet 和 SqlCeDataAdapter。
Dim cmd As SqlCeCommand = Nothing
Dim adp As SqlCeDataAdapter = Nothing
Try
adp = New SqlCeDataAdapter()
Dim conn As New SqlCeConnection("Data Source = MyDatabase.sdf")
' Create the SelectCommand
'
cmd = conn.CreateCommand()
cmd.CommandText = "SELECT * FROM Orders WHERE [Ship Country] = @country AND [Ship City] = @city"
cmd.Parameters.Add("@country", SqlDbType.NVarChar, 15)
cmd.Parameters.Add("@city", SqlDbType.NVarChar, 15)
cmd.Parameters("@country").Value = "UK"
cmd.Parameters("@city").Value = "London"
adp.SelectCommand = cmd
' Create the DeleteCommand
'
cmd = conn.CreateCommand()
cmd.CommandText = "DELETE FROM Orders WHERE [Order ID] = @orderID"
Dim p As SqlCeParameter = cmd.Parameters.Add("@orderID", SqlDbType.NChar, 5, "Order ID")
p.SourceVersion = DataRowVersion.Original
adp.DeleteCommand = cmd
' Populate the dataset with the results from the SELECT statement
'
Dim ds As New DataSet()
adp.Fill(ds)
' Modify the dataset
'
MessageBox.Show("Number of rows: " & ds.Tables(0).Rows.Count)
' Delete some rows
'
ds.Tables(0).Rows(3).Delete()
ds.Tables(0).Rows(4).Delete()
' This will execute two DELETE statements
'
adp.Update(ds.Tables(0))
Catch e As Exception
MessageBox.Show(e.Message)
Finally
If Not Nothing Is adp.SelectCommand Then
adp.SelectCommand.Dispose()
End If
If Not Nothing Is adp.DeleteCommand Then
adp.DeleteCommand.Dispose()
End If
End Try
SqlCeCommand cmd = null;
SqlCeDataAdapter adp = null;
try
{
adp = new SqlCeDataAdapter();
SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf");
// Create the SelectCommand
//
cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM Orders WHERE [Ship Country] = @country AND [Ship City] = @city";
cmd.Parameters.Add("@country", SqlDbType.NVarChar, 15);
cmd.Parameters.Add("@city", SqlDbType.NVarChar, 15);
cmd.Parameters["@country"].Value = "UK";
cmd.Parameters["@city"].Value = "London";
adp.SelectCommand = cmd;
// Create the DeleteCommand
//
cmd = conn.CreateCommand();
cmd.CommandText = "DELETE FROM Orders WHERE [Order ID] = @orderID";
SqlCeParameter p = cmd.Parameters.Add("@orderID", SqlDbType.NChar, 5, "Order ID");
p.SourceVersion = DataRowVersion.Original;
adp.DeleteCommand = cmd;
// Populate the dataset with the results from the SELECT statement
//
DataSet ds = new DataSet();
adp.Fill(ds);
// Modify the dataset
//
MessageBox.Show("Number of rows: " + ds.Tables[0].Rows.Count);
// Delete some rows
//
ds.Tables[0].Rows[3].Delete();
ds.Tables[0].Rows[4].Delete();
// This will execute two DELETE statements
//
adp.Update(ds.Tables[0]);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
if (null != adp.SelectCommand) adp.SelectCommand.Dispose();
if (null != adp.DeleteCommand) adp.DeleteCommand.Dispose();
}
執行緒安全性
這個類型的任何公用靜態 (在 Microsoft Visual Basic 中為 Shared) 成員都是執行緒安全的。並不是所有的執行個體成員都保證可以用於所有的執行緒。