C#调用存储过程,获取异常信息问题

C#的代码如下:
try
{
//调用存储过程
cmd.ExecuteNonQuery();
strErr = cmd.Parameters["@ErrMsg"].value.tostring();//strErr 是存储过程的输出参数
}
catch(Exception e)
(
strErr = e.Message.ToString();
return;
)
测试情况:我通过存储过程往数据库中插入一条重复的记录(已设置主键),调试存储过程时,输出参数strErr的错误消息大概为违反表的主键唯一性约束;但是在C#调试,执行ExecuteNonQuery()后,就跳入catch语句中,strErr的错误消息为Error converting data type nvarchar to int.为什么错误不一样呢?谁能帮我解释下原因,折腾了好几天???

2个回答

你先手动调下你的存储过程,看存储过程是否抛出异常,如果存储过程调用没有问题,那是不是你的外部程序异常
参考自:
MySQL存储过程详解 http://www.data.5helpyou.com/article314.html

谢谢你们热心的回答,原因在于我在c#传入存储过程的类型,有的DBType、SqlDbType,统一成一种类型,就可以输出存储过程的报错信息。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
获取异常信息
tryrnrncatch(...)rnrnrn获取所有异常rn怎么获得这个信息打印出来?
c#调用存储过程的问题
[code=C#]rn public static int ChiDao(string name, DateTime mintime,DateTime maxtime)rn rn tryrn rn SqlParameter[] par = new SqlParameter[]rn rn new SqlParameter("@name",SqlDbType.VarChar).Value=name,rn new SqlParameter("@datemin",SqlDbType.DateTime).Value=mintime,rn new SqlParameter("@datemax",SqlDbType.DateTime).Value=maxtime,rn new SqlParameter("@shuchu",SqlDbType.Int).Direction=ParameterDirection.Outputrn ;rn DBHelper.ExecuteCommand("chaxunchidao",par);rn rn rn rn catch (Exception)rn rn rn throw;rn rn[/code]rn[code=C#]rn public static void ExecuteCommand(string name, SqlParameter[] paramArray)rn rn using (conn = new SqlConnection(SqlConn))rn rn tryrn rn command = new SqlCommand();rn command.CommandText = name;rn command.Connection = conn;rn command.CommandType = CommandType.StoredProcedure;rn for (int i = 0; i < paramArray.Length; i++)rn rn command.Parameters.Add(paramArray[i]);rn rn conn.Open();rn command.ExecuteNonQuery();rn rn catch (Exception e)rn rn throw e;rn rn rnrn rn[/code]rn在ChiDao中怎样返回@shuchu的值rnrnrnrnrn
C# 存储过程调用问题
调用执行存储过程~用SqlDataAdapter.Fill()返回DataSet查询结果~rn在调试环境下执行成功~rn用生成的exe执行有时会报未将对象引用设置到对象的实例~或者执行完返回的记录条数不全~
C#调用存储过程的问题
数据库名 cSharp 表明 region 字段 RegionId int RegionDes ncharrn存储过程 rnCREATE PROCEDURE RegionInsertrn (@RegionDes Nchar(50),rn @RegionId INteger outputrn )rn AS set Nocount off;rn select @RegionId=max(RegionID)+1rn From Region;rnInsert into Region(RegionId,RegionDes)rnvalues(@RegionId,@RegionDes);rnGOrn添加的代码rnSqlConnection conn;rn SqlCommand Cmd;rn String strcon,str;rn str=textBox1.Text;rn tryrn rn strcon="Data Source=(local);";rn strcon+="Initial catalog=cSharp;";rn strcon+="user ID=sa;";rn strcon+="password=;";rn conn=new SqlConnection(strcon);rn conn.Open();rnrn Cmd==new SqlCommand("RegionInsert",conn);//为什么提示该处有问题rn Cmd.CommandType=CommandType.StoredProcedure;rn Cmd.Parameters.Add(new SqlParameter("@RegionDes",SqlDbType.NChar,10,"RegionDes"));rn Cmd.Parameters.Add(new SqlParameter("@RegionId",rn SqlDbType.Int,rn 0,rn ParameterDirection.Output,rn false,rn 0,rn 0,rn "RegionId",rn DataRowVersion.Default,rn null));rn rn Cmd.UpdatedRowSource=UpdateRowSource.OutputParameters;rn Cmd.Parameters["@RegionDes"].Value=textBox1.Text;rn conn.Close(); rnrn rn catch(Exception oExcept)rn rnrn rn各位大侠,请你们看以下这段代码的问题,编译通不过,问题处以标注rn问题提示rn只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句rn
C#存储过程调用问题
代码不能调用存储过程,调用的代码如下:rnrntryrn rn rn SqlCommand aCommand = new SqlCommand("pr_ProfitPerSupplier",conn);rn aCommand.CommandType= CommandType.StoredProcedure;rn aCommand.Parameters.Add(new SqlParameter("@strDateFrom",SqlDbType.VarChar,10));rn aCommand.Parameters.Add(new SqlParameter("@strDateTo",SqlDbType.VarChar,10));rn aCommand.Parameters.Add(new SqlParameter("@intSupplierID",SqlDbType.Int));rn aCommand.Parameters.Add(new SqlParameter("@strDivisionID",SqlDbType.VarChar,20));rn aCommand.Parameters.Add(new SqlParameter("@strSectionID",SqlDbType.VarChar,10));rn aCommand.Parameters.Add(new SqlParameter("@intAttribute",SqlDbType.Int));rn aCommand.Parameters.Add(new SqlParameter("@strStore",SqlDbType.VarChar,100));rn rn aCommand.UpdatedRowSource=UpdateRowSource.None;rnrn aCommand.Parameters["@strDateFrom"].Value=strDateFrom.ToString();rn aCommand.Parameters["@strDateTo"].Value=strDateTo.ToString();rn aCommand.Parameters["@intSupplierID"].Value=intSupplierID;rn aCommand.Parameters["@strDivisionID"].Value=strDivisionID.ToString();rn aCommand.Parameters["@strSectionID"].Value=strSectionID.ToString();rn aCommand.Parameters["@intAttribute"].Value=intAttribute;rn aCommand.Parameters["@strStore"].Value=strStore;rn rn aCommand.ExecuteNonQuery();rn rn rn rn catchrn rn MessageBox.Show("excption");rn rnrn存储过程引入参数如下:rnCREATE Procedure pr_ProfitPerSupplierrn @strDateFrom varchar(10),rn @strDateTo varchar(10),rn @intSupplierID int = 0 ,rn @strDivisionID varchar(20) = '',rn @strSectionID varchar(10) = '',rn @intAttribute int= 1,rn @strStore varchar(100) = ''rnrn
C# 调用存储过程问题
[img=https://img-bbs.csdn.net/upload/201403/27/1395906799_125605.png][/img]rn如图所示,调用存储过程时,执行ExecuteNonQuery方法的时候报错,说将varchar值转INT时失败,可我没有转换为int值啊,只是获取存储过程的return值而已啊
捕捉存储过程的异常信息?
在sql server中能否得到所有存储过程执行的异常信息?rn不知道在sql server的日志中能否找到?
c#中调用存储过程怎么获取返回值?
c#中调用存储过程怎么获取返回值?
c# 调用存储过程 不能获取返回值
[code=sql]ALTER proc [dbo].[spDelFloat_AboutTable]rn(rn @FID NVARCHAR(50), rn @state NVARCHAR(50) OUTPUT,rn @sqlFUID uniqueidentifier OUTPUTrn)rnasrnbegin transactionrn declare @errorSum int rn rn select @sqlFUID=SqlFUID from saFlow where FID=@FIDrn rn delete from saFlow where FID=@FIDrn set @errorSum=@errorSum+@@error --累计是否有错误rn rn delete from saSqlMst where FUID=@sqlFUID rn set @errorSum=@errorSum+@@error --累计是否有错误 rn rn if @errorSum>0rn begin rn set @state=0rn rollback transactionrn endrnelsern begin rn set @state=1rn commit transactionrn endrn[/code]rnrn我用程序调用这个 存储过程 不能获取到@sqlFUID 这返回值 是什么原因?? 并且 saSqlMst 这个表中的数据不能删除?
C# 调用sql2000存储过程的问题
我又一个方法:rn /// rn /// 执行一条返回结果集的SqlCommand命令rn /// 使用参数数组提供参数rn /// rn /// SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)rn /// 存储过程的名字或者 T-SQL 语句rn /// 以数组形式提供SqlCommand命令中用到的参数列表rn /// 返回一个包含结果的SqlDataReaderrn public SqlDataReader ExecuteReader(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)rnrn我现在是调用的 存储过程:rnCREATE PROCEDURE ProPageListrn@pageIndex int,rn@pageSize int,rn@tableName varchar(50),rn@strField varchar(500)rnASrnrn但是不知道怎么用..?rn那个 params SqlParameter[] commandParameters 这个参数怎么赋值啊..?rn
关于C#调用存储过程的问题!!!
我写了一个存储过程如下:rnALTER PROCEDURE dbo.SP_test @employee_name nvarchar(50)rnASrn delete from addr_list where employee_name = @employee_name;rnaddr_list表中字段也为employee_namernrnrn代码如下:rnprivate void button3_Click(object sender, System.EventArgs e)rn rn int result=p_test("ff");rn if(result>0)rn rn MessageBox.Show("删除成功!");rn rnrn rn public int p_test(string employee_name)rn rn string sqlstr = "server=love2008;database=cust_manager;uid=sa;pwd=123456";rn SqlConnection conn = new SqlConnection(sqlstr);rn conn.Open();rn SqlCommand myCom = new SqlCommand();rn myCom.Connection = conn;rn myCom.CommandText = "SP_test";rn myCom.CommandType = CommandType.StoredProcedure;rn SqlParameter param = new SqlParameter(@employee_name,SqlDbType.NVarChar,50);rn param.Value = employee_name;rn param.Direction = ParameterDirection.Input;rn rn myCom.Parameters.Add(param);rn int result;rn tryrn rn myCom.ExecuteNonQuery();rn result=1;rnrn rn catch(Exception e1)rn rn MessageBox.Show(e1.Message);rn result=0;rn conn.Close();rn rn return result;rn rn怎么弹出异常说:ff不是存储过程SP_test的参数哪????
C#中调用存储过程的问题
我想在C#.net中调用SQL存储过程,并显示结果,该怎么办。(结果有很多个表)
C#调用存储过程问题,求助~!
我是C#winform初学者,以下问题向各位大虾求助!rnrnC#winform 中调用预存程序:rn SqlCommand cmd = new SqlCommand("HXZTJY", conn);rn cmd.CommandType = CommandType.StoredProcedure;rn cmd.Parameters.Add("@years", SqlDbType.NVarChar ).Value = txtDate.ToString().Trim();rn cmd.Parameters.Add("@departno", SqlDbType.NVarChar).Value = txtDep.Text.ToString().Trim();rn cmd.Parameters.Add("@staffno", SqlDbType.NVarChar).Value = txtNam.Text.ToString().Trim();rnrn int i = cmd.ExecuteNonQuery();rn conn.Dispose();rn conn.Dispose();rn conn.Close();rn MessageBox.Show("计算完成!", "系统提示");rnrn原本的预存程序 HXZTJY 是一段薪资计算的代码,我简化了内容 如下:rn CREATE PROCEDURE [dbo].[HXZTJY]rn @years varchar(6),rn @departno nvarchar(6),rn @staffno nvarchar(6)rn ASrn declare @begin_date datetimern declare @end_date datetime rn declare @day float(8),rn @Y1 float(8), --基本底薪rn @Y2 float(8), --每月標准天數rn @Y3 float(8), --標准工作時間rn @Y4 float(8) --應出勤天數 rnrn set @begin_date=convert(datetime,@years+'01')rn set @end_date=dateadd(dd,-1,dateadd(mm,1,@begin_date)) rn set @Y2=21.75rn set @Y3=8rn set @day=day(@end_date) rn rn GOrn以上的预存程序我在 SQLSERVER的查询分析器中执行是没问题 ,如:exec HXZTJY'201209','Y01007','%'rn加上: print @begin_date ,print @end_date 也是能打印出时间变量的值,但用在C# winform程序中就会报错:rn"从字符串转换为 datetime 时发生语法错误。"rn
C#调用存储过程返回值问题????
private void btncmd_Click(object sender, System.EventArgs e)rn rn this.txtcmd.Text = null;rn string inscmd = "xp_cmdshell '"+this.txtcmd.Text+"'";rn objSqlCommand =new SqlCommand(inscmd,objSqlConnection);rn tryrn rn objSqlCommand.ExecuteNonQuery();rn rn catch(SqlException ex)rn rn MessageBox.Show(ex.Message);rn rn rnrnrnthis.txtxinxi.Text = 我调用储存过程的返回值 rnrn这个怎么实现?rnrn谢谢了~~~~
一个c#调用存储过程的问题!
大家好,现在创建了一个oracle包 DotNet如下:rnrn create or replace package DotNet isrnrn -- Author : good_hyrn -- Created : 2004-12-13 13:30:30rn -- Purpose :rnrn TYPE type_cur IS REF CURSOR; --定义游标变量用于返回记录集rnrn PROCEDURE DotNetPagination(rn Pindex in number, --分页索引rn Psql in varchar2, --产生dataset的sql语句rn Psize in number, --页面大小rn v_cur out type_cur --返回当前页数据记录rn );rnrnend DotNet;rnrnrn然后有一个包体:rnrncreate or replace package body DotNet isrnrn --***************************************************************************************rnrn PROCEDURE DotNetPagination(rn rn Pindex in number,rn Psql in varchar2,rn Psize in number,rn v_cur out type_cur ---记录总数rn rn )rn ASrnrn v_sql VARCHAR2(1000);rn v_count number;rn v_Plow number;rn v_Phei number;rn rn Beginrn ------------------------------------------------------------取分页总数rn v_sql := 'select count(*) from (' || Psql || ')';rn execute immediate v_sql into v_count;rnrn ------------------------------------------------------------显示任意页内容rn rn v_Phei := Pindex * Psize + Psize;rn v_Plow := v_Phei - Psize + 1;rn rn --Psql := 'select rownum rn,t.* from cd_ssxl t' ; --要求必须包含rownum字段rn rn v_sql := 'select * from (' || Psql || ') where rn between ' || v_Plow || ' and ' || v_Phei ;rnrn open v_cur for v_sql;rnrn End DotNetPagination;rn end DOtnet;rnrn但是我在程序里面调用这个包的存储过程的时候一直报:rnpls-00201:dotnet不是过程或尚未定义rnpls--00201:statment ignored;rnrnrn 知道的帮忙一下,谢谢。
C# EF 调用存储过程的问题
首先 有一个 表 数据结构是这样的rnrn[img=https://img-bbs.csdn.net/upload/201803/16/1521182730_42934.png][/img]rnrn通过一个存储过程 GroupSearch,查出以下内容:rnrn[img=https://img-bbs.csdn.net/upload/201803/16/1521182785_93663.png][/img]rnrn名字相同的要合并,年份相同的要合并,并用年做列头(列是不定的,要看数据中筛选出多少个年份),查是查出来了,我在用EF的时候不知道如何去接收返回值,返回值是ObjectResult,请教如何解析这个结果,绑定到DataGrid上。rnrn[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/13.gif][/img]
c#调用存储过程!诡异的问题!
code=C#]rnprivate void button1_Click(object sender, EventArgs e)rn rn User user = new User();rn user.DeleteUser(xm.Text.Trim());rn rnpublic void DeleteUser(string Dlone)rn rn SqlParameter PDlone = new SqlParameter("@PDlone", SqlDbType.VarChar);rn PDlone.Value = Dlone;rnrn string sp = "deluser";rn SqlParameter[] dlparms = PDlone ;rn AccessDatabase.ExecuteNonQuery(AccessDatabase.ConnectionString, CommandType.StoredProcedure , sp, dlparms );rn rnpublic static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)rn rn SqlCommand cmd = new SqlCommand();rn SqlConnection conn = new SqlConnection(connectionString);rn tryrn rn PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);rn int val = cmd.ExecuteNonQuery();rn //cmd.Parameters.Clear();rn return val;rn rn catchrn rn // 异常:一旦出现异常则先显示关闭连接对象。然后再将异常抛出。rn conn.Close();rn throw;rnrn rn rn rn [/code]rn这个事件运行时总是报错:‘过程或函数 'deluser' 需要参数 '@name',但未提供该参数。’但是我已经把参数给了,查了几遍都没有看出问题来。大家帮帮忙,看看可能哪里的问题,我再调试。谢谢各位了!rn[/code]
问个C#调用存储过程的问题
需要通过一个BUTTON按钮调用存储过程,插入N条记录,请问要怎么调用?rn记录怎么插入?rnrn环境:C# ORACLE9i
异常信息获取,求教高人!!!
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)rn 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)rn 在 System.Data.SqlClient.TdsParser.Connect(Boolean& useFailoverPartner, Boolean& failoverDemandDone, String host, String failoverPartner, String protocol, SqlInternalConnectionTds connHandler, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean aliasLookup)rn 在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)rn 在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)rn 在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)rn 在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)rn 在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)rn 在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)rn 在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)rn 在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)rn 在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)rn 在 System.Data.SqlClient.SqlConnection.Open()rn 在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)rn 在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)rn 在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)rn 在 Default3.BindView() 位置 c:\Documents and Settings\mark.huang\My Documents\Visual Studio 2005\WebSites\WebSite9\Default3.aspx.cs:行号 30rnrnrnrn这段堆栈信息中我只想要最后在 Default3.BindView() 位置 c:\Documents and Settings\mark.huang\My Documents\Visual Studio 2005\WebSites\WebSite9\Default3.aspx.cs:行号 30rn这一段,要怎么做??办法想尽了,可是不清楚堆栈信息处里方法。
关于获取异常信息.......
在VB中,当出现异常时,可以从rnInformation.Errrn得到 错误的信息: 包括rn Err.Numberrn Err.Sourcern Err.Descriptionrn Err.HelpFilern Err.HelpContextrn Err.LastDllErrorrn等rnrn请教,在c#中出现异常时,如何获取这些信息呢?rnrntry ...catch... e.message... 这一条只获得一个message而已rnrnrn
java获取异常信息
java如何采用反射机制来调用方法, 若要获取异常信息   try{ Method m = ...; m.invoke(...);//反射调用方法 }catch(Exception e){ System.out.println(e.getMessage);//获取不到异常信息 }  这样是不行的。   应该这样:     try{ Method ...
extjs store 获取异常信息
通过store获取列表解析过的字符串。如果后台在获取数据的时候有异常。我想获取这个异常并把在页面提示用户数据不完整。rn如果是删除可以这么做。现在不清楚store有没有属性可以判断。rn[url=http://chendlfly.javaeye.com/blog/670737]http://chendlfly.javaeye.com/blog/670737[/url]rn这个网站有提供解决方案,我试过行不通。谁之前有做过这个东西的
python异常信息的获取
  python的异常处理如C/C++的结构一样。python用try...except...,C/C++则用try...catch..,并不难理解。在对具体错误的获取则有点不同,主要是语法的差异上。    C++在catch后可生成相应一个异常的类,然后可通过类对象获取相关的错误信息。    而python则不同,它在获取错误信息有点奇怪,可能是语言的差惜,有C/C++先入为主的原因。开始在...
java获取oracle存储过程异常信息
存储过程中:rn select leftPosition,rightPosition,costRate,updateDate,todayCust,nettingProfitloss,todayNetting,rn todayflatplate,flatplateProfitloss,todayHand,handProfitlossrn into rnclass_leftAmt,class_rightAmt,class_costAmt,class_updateDate,class_todayCust,class_nettingProfitloss,class_todayNetting,rn class_todayflatplate,class_flatplateProfitloss,class_todayHand,class_handProfitlossrn from ck_classTotalrn where productCode=total_productCode and currencyName=Detail_currencyName and exposureNumber=Detail_exposureNumber for update wait 1;rn[color=#FF0000] if SQL%ROWCOUNT = 0 thenrn RAISE_APPLICATION_ERROR(-20000,'没有数据!'); rn end if;[/color]rnrn在java代码中如何取得'没有数据!'这个错误描述呢?
python调用rabbit异常信息
pika.exceptions.ProbableAccessDeniedError No access,你可以直接点击用户名,设置一个默认的 也可以用命令设置 命令设置权限方式为: >> rabbitmqctl set_permissions -p '/' yueer01 ".*" ".*" ".*"Setting permissions for
c# json 捕获异常信息
网上借鉴了代码rnrn[code=csharp]rn public static string Post(string Url, string Data)rn rn HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);rn request.Method = "POST";rn request.Timeout = 5; //超时时间rn //request.Referer = Referer;rn byte[] bytes = Encoding.UTF8.GetBytes(Data);rn request.ContentType = "application/json"; //json模式rn request.ContentLength = bytes.Length;rn Stream myResponseStream = request.GetRequestStream();rn myResponseStream.Write(bytes, 0, bytes.Length);rnrn //这里要捕获些出错信息,比如超时rnrnrn HttpWebResponse response = (HttpWebResponse)request.GetResponse();rn rn StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);rn string retString = myStreamReader.ReadToEnd();rn myStreamReader.Close();rn myResponseStream.Close();rn rn if (response != null)rn rn response.Close();rn rn if (request != null)rn rn request.Abort();rn rn return retString;rn rn[/code]rnrn想捕获一些异常信息,比如超时(需要用messagebox弹出提示),请大神指教,谢谢
C#调用存储过程示例
sql server支持存储过程,就是把sql语句以函数的形式内嵌在数据库中,程序中只需要调用这个函数就可以了。 这里给出一个通过输入编号id来查询密码的存储过程调用实例。 存储过程语句://getPasswordById是存储过程的名字 create procedure getPasswordById(@id int,@password Varchar output)//output意为输
C#调用存储过程总结
存储过程在数据库的数据处理中起到很大的作用,避免了很多重复性工作,使数据的处理效率提高。 而存储过程也经常在程序中调用,它的调用过程如下: Conn.Open(); SqlCommand myCommand = Conn.CreateCommand(); //步骤一 myCommand.CommandType = CommandType.StoredProce...
C#调用存储过程简单实例
学习了简单的存储过程技术后,做了一个关于C#存储过程的简单实例,可以帮助理解C#如何调用SQL Server的存储过程技术,用winform做的小实例,代码有注释,希望和新手共勉
C#调用存储过程
C#调用SqlServer数据库的存储过程,有参数的无参数的两种;
C# 调用存储过程
关于cC# 窗体应用程序调用SQL 存储过程的典型情况
c#调用存储过程
c#调用存储过程
C# 调用存储过程 语法错误
大家好!rn代码如下:rnrn[code=C#]rnpublic void GetCompany(string companyId)rn rn SqlParameter[] values = new SqlParameter[]rn rn new SqlParameter(PARAM_COMPANY_ID, companyId)rn ;rnrn DataTable dtResult = SQLDBUtil.GetDataSetByProcedure(PRO_GET_WATER_HISTORY, values);rnrn rn[/code]rnrnrn[code=SQL]rnIF EXISTS (SELECT name FROM sysobjects WHERE name = 'proTest' AND type = 'P') rn DROP PROCEDURE proTest rnGOrnrnCREATE PROCEDURE proTestrn @company_Id VARCHAR(2)rnASrnBEGINrn SELECT * FROM Company WHERE company_Id = @company_Id;rnENDrnrnexec proTest '01';rnrn[/code]rnrnrn错误提示: "'proTest' 附近有语法错误。"rn首先,这存储过程是可以执行的.但是用C#调用,就报存储过程名字附近有语法错误.另外,如果C#里不传参数,是没问题的.这是什么问题?请大家指教,谢谢!
c# 调用存储过程??
我建了一个存储过程,是为了搜索功能而建的,sql语句是这样的:rn[color=#0000FF]rn CREATE PROCEDURE UP_SearchHouseInfo rnrn @hifangwulx nvarchar(500), rn @hihuxing nvarchar(500), rn @hifangyuanqy nvarchar(500), rn @hinidingjg nvarchar(500), rn @SearchKey varchar(100)=null rn AS [code=C#][/code]rn Select * from mp_HouseInfo rn where hifangwulx=@hifangwulx and hihuxing=@hihuxing and hifangyuanqy=@hifangyuanqyrnand hinidingjg =@hinidingjg rnand hifangyuanmc like '%'+rtrim(@SearchKey)+'%' rnor hifangyuandd like '%'+rtrim(@SearchKey)+'%' rnor hijianzhumj like '%'+rtrim(@SearchKey)+'%' rnor hichangquangs like '%'+rtrim(@SearchKey)+'%' rnor hijianzhund like '%'+rtrim(@SearchKey)+'%' rnor hilianxir like '%'+rtrim(@SearchKey)+'%' rnor hidianhua like '%'+rtrim(@SearchKey)+'%' rnor hibuchongshm like '%'+rtrim(@SearchKey)+'%' rnor hiimage like '%'+rtrim(@SearchKey)+'%' rn rn GO [/color]rn然后我在后台用了c#来调用这个存储过程:rn代码如下:rn[code=C#] private void DataListBind()rn rnrn string strconn = "server=.;database=Mojo_tianzhuju;uid=sa;pwd=p@ssw0rd";rn SqlConnection Conn = new SqlConnection(strconn);rn Conn.Open();rn string sKey = this.Txtproduct.Text;rn SqlDataAdapter sda = new SqlDataAdapter();rn //调用存储过程rn SqlCommand comm = new SqlCommand("EXEC UP_SearchHouseInfo", Conn);rn comm.CommandType = CommandType.StoredProcedure;rn if (this.RadioButton1.Checked)rn rbtleixing = "租房";rn else if (this.RadioButton2.Checked)rn rbtleixing = "二手房";rn else if (this.RadioButton3.Checked)rn rbtleixing = "新房";rn else if (this.RadioButton4.Checked)rn rbtleixing = "商用房";rn comm.Parameters.Add(new SqlParameter("@hifangwulx", rbtleixing)); rn comm.Parameters.Add(new SqlParameter("@hihuxing",this.Shi.SelectedValue+"室"+this.Ting.SelectedValue+"厅"+this.Wei.SelectedValue+"卫"));rn comm.Parameters.Add(new SqlParameter("@hifangyuanqy", this.quyu.SelectedValue));rn comm.Parameters.Add(new SqlParameter("@hinidingjg", this.shoujia.SelectedValue)); rn comm.Parameters.Add(new SqlParameter("@SearchKey",sKey)); rn rn DataSet ds = new DataSet();rn comm.CommandTimeout = 999;rn sda.SelectCommand = comm;rn DataListHouseInfo.DataSource = ds;rn DataListHouseInfo.DataBind();rnrnrnrn [/code]rn可是运行到DataListHouseInfo.DataBind();rn这个语句时就出现了错误,rn各位大侠可以给点建议不?rnrnrn
C#调用存储过程,急....
private void AttachDataBase()rn rn string Str_mdf;rn string Str_ldf;rnrn Str_mdf = "E:\\DataBase\\Test_Data.MDF";rn Str_ldf = "E:\\DataBase\\Test_log.LDF";rnrn SqlCommand thisCommand = new SqlCommand("sp_attach_db",SQLConn);rnrn thisCommand.CommandType = System.Data.CommandType.StoredProcedure;rnrn thisCommand.Parameters.Add(new SqlParameter("@dbname", SqlDbType.NChar, 50, "Test"));rn thisCommand.Parameters.Add(new SqlParameter("@filename1", SqlDbType.NChar, 200, Str_mdf));rn thisCommand.Parameters.Add(new SqlParameter("@filename2", SqlDbType.NChar, 200, Str_ldf));rnrn thisCommand.ExecuteNonQuery();rn rnrnrn为何出错?
c#调用存储过程出错
param = firstCommand.Parameters.Add("V_HJRQ", OleDbType.Date);rn param.Value = "2002-12-12";rn如果这样写提示错误:rnORA-01841: (全)年度值必须介于 -4713 和 +9999 之间,且不为 0rnORA-06512: 在line 1rnrnrn param.Value = System.DateTime.Today; 用系统时间同样提示这个错误!!
C#调用存储过程出错
CREATE PROC test(@Categories varchar(500),@CategoriesType int,rn@CategoriesLastType int,@CategoriesLastID varchar(50),@CategoriesURL varchar(500),rn@GatherState int,@GatherDate DateTime,@CategoriesID varchar(50),@CategoriesName varchar(50),rn@Type int,@LastType int)rnASrn declare @Count intrn declare @SQL varchar(1000)rn beginrn set @SQL='select ID from AmazonURL where Categories='+@Categories+' and CategoriesType='+@Type+' and CategoriesLastType='+@LastTypern @Count=exec(@SQL)rn if(@Count>0)rn beginrn set @SQL='nsert into AmazonURL(Categories,CategoriesType,CategoriesLastType,CategoriesLastID,CategoriesURL,rn GatherState,GatherDate,CategoriesID,CategoriesName)rn values('+@Categories+','+@CategoriesType+','+@CategoriesLastType+','+@CategoriesLastID+','+@CategoriesURL+',rn '+@GatherState+','+@GatherDate+','+@CategoriesID+','+@CategoriesName+')'rn exec(@SQL)rn endrn endrngornrnrnrnrn在@Count=exec(@SQL)地方出错,我想返回查询后是否有值,如果没有值就是Count<0则添加数据,请大家帮忙
在c#中调用存储过程
在c#中如何用DataAdapter和DataSet调用数据库呢??请大虾们指点,最好能给出一些代码!!因为我的老是出现SelectCommand未初始化的错误!!
C#调用带参数的存储过程
存储过程:rnWHINSERT(公司编号 IN VARCHAR2,商品编号 IN VARCHAR2,货位编号 IN VARCHAR2)rnC# rn[code=C#]rn OracleCommand command;rn command = new OracleCommand("proc_name",new OracleConnection(connectionstr));//rn command.Parameters.Add("@Parameter1","id1234"); //输入参数,职员姓名rn command.Parameters.Add("@Parameter2","商品1");rn command.Parameters.Add("@Parameter3","hw001");rnrn command.Parameters.Add(new OracleParameter("@result", //生成一输出参数rn OracleType.Char,       //参数数据类型rn 0, //大小 int32rn ParameterDirection.ReturnValue,    //返回值rn "0", //源列rn DataRowVersion.Default, //源版本rn true, //其他属性 - 1rn null)                 //其他属性 - 2rn );rnrn command.CommandType= CommandType.StoredProcedure;rn command.Connection.Open();rn command.ExecuteNonQuery();rn string sResult = command.Parameters["@result"].Value.ToString(); //得到存储过程返回值rn command.Connection.Close();rn[/code]rn 1:这样能调用这个存储过程并得到返回值吗?rn 2:rn "0", //源列rn DataRowVersion.Default, //源版本rn true, //其他属性 - 1rn null)                 //其他属性 - 2rn这四个属性是什么意思啊。rn大哥大姐们,帮个忙。先谢谢了
c# 调用存储过程
文档内容包括了c#连接数据库和调用存储过程的写法,并有输入、输出、return参数的赋值和查询结果的取值方法和查询结果关联dataGridView的方法。最后给出了存储过程的案例。
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池