我使用SP,这不是SP vs代码隐藏"构建您的SQL命令"问题.我正在寻找一种处理许多小事务的后端应用程序的高吞吐量方法.我使用SQLDataReader进行大部分返回,因为转发仅适用于大多数情况.
我已经看到它做了很多种方式,并且我自己也使用了大部分方法.
定义和接受存储过程参数作为参数本身的方法,并使用cmd.Parameters.Add构建(使用或不指定DB值类型和/或长度)
将SP参数及其值组装到数组或散列表中,然后传递给一个更抽象的方法来解析集合,然后运行cmd.Parameters.Add
表示表的类,根据需要初始化类,设置表示表字段的公共属性,以及调用Save,Load等方法
我确信还有其他我见过但现在也想不到的.我对所有建议持开放态度.
我正在开发一个项目,我希望能够将命令发送到SQL Server并运行查询.我已成功使用Joel的非常好的教程将查询返回到列表框: 创建数据库查询METHOD
我现在正在尝试调整它来执行一些命令,然后运行查询以检查命令是否有效.我的查询失败,因为我认为这些命令不起作用.
目前我发送这个:
MySqlCommand("CREATE TABLE #CSVTest_Data" +
"(FirstTimeTaken DATETIME," +
"LatestTimeTaken DATETIME," +
"Market VARCHAR(50)," +
"Outcome VARCHAR(50),"+
"Odds DECIMAL(18,2)," +
"NumberOfBets INT," +
"VolumeMatched DECIMAL(18,2),"+
"InPlay TINYINT)");
Run Code Online (Sandbox Code Playgroud)
进入:
private void MySqlCommand(string sql)
{
int numberOfRecords;
//string result;
using (var connection = GetConnection())
using (var command = new SqlCommand(sql, connection))
{
connection.Open();
numberOfRecords = command.ExecuteNonQuery();
}
MessageBox.Show(numberOfRecords.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我的理解是ExecuteNonQuery返回受影响的行数的整数.我的消息框显示值-1.在SQL Server中运行相同的命令将返回"命令已成功完成".如果有人能告诉我我的MySqlCommand方法是否正常以及如何通过运行该函数返回输出的SQL Server消息,我将不胜感激.