因儲存過程引數型別不匹配而造成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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql儲存過程的引數MySql儲存過程
- 詳解MySQL儲存過程引數有三種型別(in、out、inout)MySql儲存過程型別
- JAVA儲存過程(轉)Java儲存過程
- 造數儲存過程儲存過程
- go 如何呼叫 sqlserver 帶傳出引數的儲存過程GoSQLServer儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MySQL儲存過程in、out、inout引數示例與總結MySql儲存過程
- 儲存過程WHERE條件不生效儲存過程
- SpringBoot 通過Converter轉化 date型別引數Spring Boot型別
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- oracle的儲存過程Oracle儲存過程
- laravel建立一個儲存過程Laravel儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- 加速全球數字化轉型,HPE智慧儲存平臺引領新時代儲存變革
- SQLSERVER儲存過程SQLServer儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- unidac儲存過程儲存過程
- firedac儲存過程儲存過程
- Oracle儲存過程Oracle儲存過程
- LMT和DMT下儲存引數的異同(轉)
- Sqlserver中的儲存過程SQLServer儲存過程
- Mysql 儲存過程的使用MySql儲存過程
- sql 儲存過程proc中的引數 是 @details 表值 引數型別的時候,如何如何檢視 自定義表的 表結構和欄位資訊SQL儲存過程AI型別
- JavaWeb——JDBC八股文、JSBC使用儲存過程、儲存函式、處理CLOB/BLOB型別JavaWebJDBCJS儲存過程儲存函式型別
- 建立NFS型別的儲存NFS型別
- JdbcTemplate調儲存過程JDBC儲存過程
- 儲存過程——遊標儲存過程
- 儲存過程 傳 datatable儲存過程
- MySQL之儲存過程MySql儲存過程
- MySQL---------儲存過程MySql儲存過程
- linux呼叫儲存過程Linux儲存過程
- Winform呼叫儲存過程ORM儲存過程
- mysql儲存過程整理MySql儲存過程
- Oracle儲存過程-1Oracle儲存過程
- mysql和orcale的儲存過程和儲存函式MySql儲存過程儲存函式
- Sqlsugar呼叫Oracle的儲存過程SqlSugarOracle儲存過程
- plsqlDevloper 儲存過程的除錯SQLdev儲存過程除錯