我想在C#中调用存储函数。我需要文章和一些例子。如何在C#中调用mySQL存储函数?
1
A
回答
1
http://forums.asp.net/p/988462/1278686.aspx
MySqlCommand cmd = new MySqlCommand("DeleteMessage", new MySqlConnection(GetConnectionString()));
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new MySqlParameter("param1", MessageItem.Entry_ID));
cmd.Connection.Open();
int i = cmd.ExecuteNonQuery();
cmd.Connection.Close();
6
这几乎等同于你将如何调用存储过程的SQL Server:
using(MySqlConnection conn = new MySqlConnection(connString))
{
MySqlCommand command = new MySqlCommand("spSomeProcedure;", conn);
command.CommandType = System.Data.CommandType.StoredProcedure;
// Add your parameters here if you need them
command.Parameters.Add(new MySqlParameter("someParam", someParamValue));
conn.Open();
int result = (int)command.ExecuteScalar();
}
0
存储函数和存储过程调用以不同的方式。
存储函数在SQL语句中用作常规函数。 例如
SELECT id, title, my_function(price) FROM table
使用CALL语句调用存储过程。
CALL my_procedure(1,2,'title');
我不知道C#,所以可能你可以使用MySqlCommand类来调用存储过程,但是你不能用它来调用存储函数。
0
我实际上无法获得其他建议返回值的方法。我结束了创建一个字符串调用的函数,然后执行该字符串与.ExecuteScalar:
MySqlTransaction mySqlTransaction = testDataMySqlConnection.BeginTransaction();
mySqlCommand = new MySqlCommand
{
Connection = testDataMySqlConnection,
CommandText = "SELECT sf_UnitsAttempted('" + ... + ");",
CommandType = CommandType.Text
};
var f = (float)mySqlCommand.ExecuteScalar();
mySqlCommand.Dispose();
return f;
0
我知道这个问题是关于从存储函数返回,这里贾斯汀的回答涵盖了。我想补充一点,如果你想从一个存储过程返回一个DataTable
相反,你可以使用DataAdapter
做到这一点:
// using MySql.Data.MySqlClient; // remember to include this
/* Helper method that takes in a Dictionary list of parameters,
and returns a DataTable.
The connection string is fetched from a resources file. */
public static DataTable ExecuteProc(string procedureName, Dictionary<string,object> parameterList)
{
DataTable outputDataTable;
using (MySqlConnection MySqlConnection = new MySqlConnection(Resources.SQL_CONNECTION_STRING))
{
using (MySqlCommand sqlCommand = new MySqlCommand(procedureName, MySqlConnection))
{
sqlCommand.CommandType = CommandType.StoredProcedure;
if (parameterList != null)
{
foreach(string key in parameterList.Keys)
{
string parameterName = key;
object parameterValue = parameterList[key];
sqlCommand.Parameters.Add(new MySqlParameter(parameterName, parameterValue));
}
}
MySqlDataAdapter sqlDataAdapter = new MySqlDataAdapter(sqlCommand);
DataSet outputDataSet = new DataSet();
sqlDataAdapter.Fill(outputDataSet, "resultset");
outputDataTable = outputDataSet.Tables["resultset"];
}
}
return outputDataTable;
}
相关问题
- 1. 在Zend Framework中调用MYSQL存储函数(非存储过程)
- 2. 如何在C中调用时存储函数地址?
- 3. 如何在存储过程中调用C#函数
- 4. MySQL:从函数调用存储过程
- 5. 如何用mybatis调用存储函数
- 6. 如何缓存mysql存储的函数
- 7. 在MySQL中使用group_concat存储函数
- 8. 如何从jdbc调用存储函数?
- 9. 如何使用angularjs在mysql中存储数学函数值?
- 10. 如何调用在C结构中一个void *变量存储函数++(回调)
- 11. 在mongodb中调用存储函数
- 12. 在存储过程中调用“函数”
- 13. 如何调用存储在jQuery数组中的函数?
- 14. 如何在MySQL存储函数中使用goto标签
- 15. 如何在MySql数据库中调用多个存储过程
- 16. 如何调用存储在单元中的函数?
- 17. 如何调用名称存储在变量中的函数?
- 18. 在MySQL中存储函数 - 值得吗?
- 19. mysql存储函数参数
- 20. C++如何在内存中存储函数和对象?
- 21. 如何在C++中调用函数
- 22. 如何在C#中调用SQL函数?
- 23. 如何在C++中调用主函数
- 24. MySql调用存储过程中的存储函数导致错误
- 25. 如何在C#中调用参数化存储过程(ASP.Net)?
- 26. 在休眠调用存储函数
- 27. 如何在MySQL中存储小数?
- 28. 如何在MySQL中的存储过程中调用存储过程
- 29. 如何在事务中包装mysql存储函数
- 30. 如何在MySQL中正确循环存储的函数?
@ratty:在'i'你。 – Svisstack 2010-07-12 12:27:57