首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么通过TableAdapter来调用自己写的存储过程,并且给存储过程传递参数

2012-03-18 
如何通过TableAdapter来调用自己写的存储过程,并且给存储过程传递参数?比如自己在MYSQL中写了一个这样的存

如何通过TableAdapter来调用自己写的存储过程,并且给存储过程传递参数?
比如自己在MYSQL中写了一个这样的存储过程:

SQL code
DELIMITER $$DROP PROCEDURE IF EXISTS `perf`.`CreateFactory` $$CREATE DEFINER=`root`@`localhost` PROCEDURE `CreateFactory`(type INTEGER)BEGIN   CASE type   WHEN 0 THEN   --some operations   WHEN 1 THEN   --some operations   --other WHEN   ELSE   --some operations   END CASE;END $$DELIMITER ;


现在我想在C#工程中,通过TableAdapter来调用该存储过程,并在调用的时候希望能传入参数来为type赋值。
我按照MSDN的文档http://msdn.microsoft.com/zh-cn/library/ms171921(v=vs.90).aspx中的做法:
右击所需的 TableAdapter,然后使用快捷菜单添加查询。

1“TableAdapter 查询配置向导”将打开。

2选择“使用现有存储过程”,然后单击“下一步”。

3从下拉列表中选择一个存储过程,然后单击“下一步”。

4选中“没有值”返回的选项,然后单击“下一步”。

5为该查询提供名称。

6单击“下一步”或“完成”完成该向导;该查询即被添加到 TableAdapter。

虽然生成了一个成员函数CreateFactory,但是却是无法传参的CreateFactory()的形式。请问有什么方法可以生成类似CreateFactory(int type)类型的方法来调用存储过程?还是只能通过最原始的编辑sqlcommand的方式?

ps:后来通过给这个TableAdapter添加UPDATE类型的Query,在这个query中直接写这样的SQL语句“CALL CreateFactory(1)”实现了从函数调用传入参数的存储过程,但这个函数种只能对应一个调用,复用性太差。~~

[解决办法]
你可以右键点TableAdapter方框里的CreateFactory,在快结菜单中选择“属性”,然后在属性编辑窗口中双击Paramter项,就会弹出一个编辑参数的对话框,然后选择增加参数,对应选择mysql类型和c#类型,就可以了,

热点排行