因儲存過程引數型別不匹配而造成OleDbCommand的不可用(一) (轉)
因過程引數型別不匹配而造成OleCommand的不可用:namespace prefix = o ns = "urn:schemas--com::office" />
Key s:
Stored Procedure/OleDbCommand//Parameter/Type/儲存過程/引數/型別
在討論OleDbCommand出錯之前,還是想了解以下OleDbCommand一些執行機制。在裡面有如下儲存過程:
ALTER PROCEDURE dbo.Test
@Name nvarchar(50),
@Age smallint
AS
@Name, @Age
使用以下程式碼,並用Watch監視OleDbCommand例項的狀況:
using System;
using System.Data;
using System.Data.OleDb;
namespace testCommand
{
class Class1
{
[STAThread]
static void
{
OleDbConnection conn=new OleDbConnection("xxx");
conn.Open();
OleDbCommand comm=new OleDbCommand("Test",conn);
comm.CommandType=CommandType.StoredProcedure;
OleDbCommandBuilder.DeriveParameters(comm);
try
{
comm.Parameters["Name"].Value="my name";
comm.Parameters["Age"].Value=()11;
comm.ExecuteNonQuery(); //斷點一,此處記憶體狀況見表一
}
catch(Exception err)
{
Console.WriteLine(
err.TargetSite+" -- "+err.StackTrace+" -- "+
err.+" -- "+err.Message+" -- "+
err.GetType().ToString());
}
try
{
comm.Parameters["Name"].Value="my name";
comm.Parameters["Age"].Value=(object)11;
comm.ExecuteNonQuery(); //斷點二,此處記憶體狀況見表二
}
catch(Exception err)
{
Console.WriteLine(
err.TargetSite+" -- "+err.StackTrace+" -- "+
err.Source+" -- "+err.Message+" -- "+
err.GetType().ToString());
}
conn.Close();
}
}
}
表格一,斷點一處的記憶體狀況
-
comm
{System.Data.OleDb.OleDbCommand}
System.Data.OleDb.OleDbCommand
transaction
null
System.Data.OleDb.OleDbTransaction
cmdText
Test
string
cmdType
StoredProcedure
System.Data.CommandType
updatedRowSource
Both
System.Data.UpdateRowSource
commandTimeout
30
int
icommandText
null
System.Data.Common.UnsafeNativeMethods.ICommandText
handle_Accessor
0
int
commandBehavior
Default
System.Data.CommandBehavior
dbBindings
null
System.Data.OleDb.DBBindings
canceling
FALSE
bool
isPrepared
FALSE
bool
executeQuery
FALSE
bool
computedParameters
FALSE
bool
designTimeVisible
FALSE
bool
cmdState
0
int
recordsAffected
0
int
CommandText
Test
string
CommandTimeout
30
int
CommandType
StoredProcedure
System.Data.CommandType
DesignTimeVisible
TRUE
bool
IsClosed
TRUE
bool
Transaction
null
System.Data.OleDb.OleDbTransaction
UpdatedRowSource
Both
System.Data.UpdateRowSource
餘下內容見 ASP?id=18427">因儲存過程引數型別不匹配而造成OleDbCommand的不可用(二)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-956640/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 因儲存過程引數型別不匹配而造成OleDbCommand的不可用(二) (轉)儲存過程型別
- 儲存過程輸入引數型別定義引起的問題儲存過程型別
- mysql儲存過程的引數MySql儲存過程
- 詳解MySQL儲存過程引數有三種型別(in、out、inout)MySql儲存過程型別
- 帶輸出引數的儲存過程儲存過程
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- 動態呼叫帶引數的儲存過程儲存過程
- 使用帶有輸出引數的儲存過程儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- MySQL 儲存過程引數IN OUT INOUT對比MySql儲存過程
- Java呼叫儲存過程(帶輸出引數)Java儲存過程
- oracle儲存過程將引數字串分割sqlOracle儲存過程字串SQL
- Oracle帶輸入輸出引數的儲存過程Oracle儲存過程
- SQLSERVER儲存過程如何寫帶引數的遊標SQLServer儲存過程
- dos下呼叫帶輸出引數的儲存過程儲存過程
- 造數儲存過程儲存過程
- oracle procedure儲存過程輸入引數用於sql like模糊匹配2演算法Oracle儲存過程SQL演算法
- SQL Server-儲存過程(Procedure),帶入引數和出引數SQLServer儲存過程
- 儲存過程的引數可以使用sql的函式儲存過程SQL函式
- SQL Server系統儲存過程和引數示例SQLServer儲存過程
- jdbctemplate呼叫儲存過程傳遞陣列引數JDBC儲存過程陣列
- JAVA儲存過程(轉)Java儲存過程
- 儲存過程中巢狀儲存過程的變數執行方式儲存過程巢狀變數
- MySQL 中 整數型別的儲存和範圍計算過程詳解MySql型別
- go 如何呼叫 sqlserver 帶傳出引數的儲存過程GoSQLServer儲存過程
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- 一個比較不錯的儲存過程分頁儲存過程
- MySQL儲存過程in、out、inout引數示例與總結MySql儲存過程
- SQL Server系統儲存過程和引數總結SQLServer儲存過程
- 過程需要型別為 'ntext/nchar/nvarchar' 的引數 '@statement'型別
- 儲存過程單引號問題儲存過程
- 簡單的造數儲存過程儲存過程
- 儲存過程WHERE條件不生效儲存過程
- 在不破壞原加密儲存過程的前提下,解密儲存過程!(補充j9988) (轉)加密儲存過程解密
- SQL分隔字串的儲存過程 (轉)SQL字串儲存過程
- 求助:DB2 V7儲存過程引數限制DB2儲存過程