c# 调用存储过程时,参数中有自定义表类型,要怎么调用 100分

xj01132 2016-01-08 04:55:29
CREATE PROCEDURE [dbo].[LuckProductLottery]
@Product LuckProductTableType READONLY,
@UserId uniqueidentifier, --当前用户编号
@LuckyBuyID uniqueidentifier,
@Ip NVARCHAR(20)
AS
BEGIN
DECLARE @LuckyCode nvarchar(10);
DECLARE @LuckyProductId uniqueidentifier;
DECLARE @LuckyNumber Int;

c# 调用LuckProductLottery时,参数要怎么传。
求解
...全文
2600 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
welcome5 2016-07-08
  • 打赏
  • 举报
回复
引用 4 楼 welcome5 的回复:
[quote=引用 2 楼 szx1999 的回复:] SqlDbType.Structured + datatable
你好!比如DBCommandWrapper dbcw = db.GetStoredProcCommandWrapper(StrSQL); GetStoredProcCommandWrapper()这个文件的函数都是基于DbType 类型的,我如果再重写基于SqlType;类型的,那么DBCommandWrapper的子类(SQL Server 和Oracle)都需要重新调整,好郁闷! (PS:DbType没有Structured)[/quote] 没有用企业库,改用sqlConnection、sqlCommand就OK
welcome5 2016-06-24
  • 打赏
  • 举报
回复
引用 2 楼 szx1999 的回复:
SqlDbType.Structured + datatable
你好!比如DBCommandWrapper dbcw = db.GetStoredProcCommandWrapper(StrSQL); GetStoredProcCommandWrapper()这个文件的函数都是基于DbType 类型的,我如果再重写基于SqlType;类型的,那么DBCommandWrapper的子类(SQL Server 和Oracle)都需要重新调整,好郁闷! (PS:DbType没有Structured)
道玄希言 2016-01-08
  • 打赏
  • 举报
回复
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; namespace StoreProduceTest { public class Program { /** * 存储过程 * * create procedure queryStuNameById @stuId varchar(10),--输入参数 @stuName varchar(10) output --输出参数 as select @stuName=stuName from stuInfo where stuId=@stuId * */ static void Main(string[] args) { Operater op = new Operater(); string name = op.QueryStuNameById("1234"); Console.WriteLine(string.Format("学号为1234的学生的姓名为{0}", name)); } } public class Operater { private string ConStr = "server=.;database=User;uid=sa;pwd=1234"; private SqlConnection sqlCon = null; private SqlCommand sqlComm = null; SqlDataReader dr = null; public string QueryStuNameById(string Id) { string name = ""; try { using (sqlCon = new SqlConnection(ConStr)) { sqlCon.Open(); sqlComm = new SqlCommand("queryStuNameById", sqlCon); //设置命令的类型为存储过程 sqlComm.CommandType = CommandType.StoredProcedure; //设置参数 sqlComm.Parameters.Add("@stuId", SqlDbType.VarChar); //注意输出参数要设置大小,否则size默认为0, sqlComm.Parameters.Add("@stuName", SqlDbType.VarChar, 10); //设置参数的类型为输出参数,默认情况下是输入, sqlComm.Parameters["@stuName"].Direction = ParameterDirection.Output; //为参数赋值 sqlComm.Parameters["@stuId"].Value = "1234"; //执行 sqlComm.ExecuteNonQuery(); //得到输出参数的值,把赋值给name,注意,这里得到的是object类型的,要进行相应的类型轮换 name = sqlComm.Parameters["@stuName"].Value.ToString(); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return name; } } }
等不到来世 2016-01-08
  • 打赏
  • 举报
回复
SqlDbType.Structured + datatable
Tiger_Zhao 2016-01-08
  • 打赏
  • 举报
回复

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧