存储过程:
CREATE PROCEDURE Zzd
@A1 varbinary(8000)
AS
GO
C#:
SqlConnection cn=null;
SqlCommand cmd=null;
try
{
cn=new SqlConnection();
cn.ConnectionString="data source=192.168.0.199;initial catalog=haha;user id=sa;password=sa";
cn.Open();
cmd=cn.CreateCommand();
cmd.CommandType=CommandType.Text;
cmd.CommandText="exec zzd @A1";
SqlParameter param= new SqlParameter();
param.ParameterName="@A1";
param.DbType=DbType.Binary;
param.Direction=ParameterDirection.Input;
byte [] a=new byte[200];
SqlBinary bin=new SqlBinary(a);
param.Value=bin;
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();
}
catch(Exception e1)
{
string a11=e1.Message;
}
if(cmd!=null)
cmd=null;
if(cn!=null)
{
cn.Close();
cn=null;
}
Ado:
CoInitialize(NULL);
{
_ConnectionPtr cn;
_CommandPtr cmd;
_ParameterPtr para;
SAFEARRAY *psa=NULL;
para.CreateInstance(__uuidof(Parameter));
try
{
cn.CreateInstance(__uuidof(Connection));
cmd.CreateInstance(__uuidof(Command));
para.CreateInstance(__uuidof(Parameter));
cn->ConnectionString="Provider=SQLOLEDB.1;User ID=sa;password=sa;Initial Catalog=haha;Data Source=192.168.0.199";
cn->Open( _bstr_t(L""), _bstr_t(L""), _bstr_t(L""), -1 );
cmd->ActiveConnection=cn;
cmd->CommandType=adCmdText;
cmd->CommandText="exec zzd ?";
//para->Name=_bstr_t("@A1");
para->Type=adVarBinary;
para->Size=8000;
para->Direction=adParamInput;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = 100;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound); ///创建SAFEARRAY对象
char pChar='C';
//复制数据
for (long i = 0; i SafeArrayPutElement (psa, &i, &pChar);
VARIANT varBLOB;
varBLOB.vt = VT_ARRAY | VT_UI1;//varBLOB的类型设置为BYTE类型的数组
varBLOB.parray = psa;
para->Value=varBLOB;
cmd->Parameters->Append(para);
cmd->Execute(NULL, NULL, adCmdText);
}
catch (_com_error &e)
{
_bstr_t bstrError = e.Description();
CString m_strError = (LPCTSTR)bstrError;
}
if(psa!=NULL)
{
SafeArrayDestroy(psa);
}
if(cmd!=NULL)
{
cmd=NULL;
}
if(cn!=NULL)
{
cn->Close();
cn=NULL;
}
}
CoUninitialize();
分享到:
相关推荐
网上有很多文章都有参考,但是很多再关键的地方都没有描述清楚,
使用 ADO.NET 和 C# .NET 调用带参数的存储过程
主要介绍了C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息,结合实例形式总结分析了C#针对SQLServer数据库存储过程及参数信息的各种常见操作技巧,需要的朋友可以参考下
非常简单的一个C#源码文件,C#接收存储过程输出参数。
本文实例讲述了C#调用存储过程的方法。分享给大家供大家参考,具体如下: CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUT AS BEGIN SELECT @studentname=...
内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...
一段简洁的C#界面连接数据库的代码,亲测可用。
C#与F#编程实践 英文版PDF带书签带源码 《C#与F#编程实践》:函数式编程擅长用紧凑、清晰的方式来表达复杂思想。“不可变性”和“函数值”等函数式概念使代码分析变得更轻松,同时还有助于并发性。新的F#语言、LINQ...
详细的记录了C#如何调用oracle以及带有存储过程输出变量的方法,适合初学者。
后台调用带参数的存储过程,返回DataSet类型数据
C#调用带参数EXE文件及带启动参数EXE制作
真实可用.本人测试在ORACLE11GR2 采用OracleUdt; 请下载此资源的朋友认真读内含的英文网页;因为.net中的除string类的数据类型外,其它类型要求手动修改UDT自动生成的类文件,本人测试了2天后,才明白要修改UDT自动生成...
C#编程 数据库操作应用 在存储过程中使用事务(源码)(源码)C#编程 数据库操作应用 在存储过程中使用事务(源码)(源码)C#编程 数据库操作应用 在存储过程中使用事务(源码)(源码)C#编程 数据库操作应用 在存储过程中使用...
很好的资料,大家一起分享
C#访问Oracle存储过程实例源码,C#、VS2010、Oracle、存储过程
C#中调用Oracle存储过程
C# 连接Mysql 有关于ADo.net的操作 截图在文档中
ADO.NET操作存储过程 教程ADO.NET操作存储过程 教程ADO.NET操作存储过程 教程ADO.NET操作存储过程 教程ADO.NET操作存储过程 教程ADO.NET操作存储过程 教程
Main() 和命令行参数(C# 编程指南) 类型(C# 编程指南) 数组(C# 编程指南) 字符串(C# 编程指南) 语句、表达式和运算符(C# 编程指南) 类和结构(C# 编程指南) 属性(C# 编程指南) 索引器...
C#与ADO.NET期末复习提纲,c#学习必备