c# - 选择查询以从 SQL Server 获取数据

标签 c# sql asp.net sql-server

我正在尝试在我的 C# 代码中运行 SQL Select 查询。但我总是在

上得到 -1 输出
int result = command.ExecuteNonQuery();

但是,如果我将同一张表用于deleteinsert 则可以...

ConnectString 也可以。

请检查下面的代码

SqlConnection conn = new SqlConnection("Data Source=;Initial Catalog=;Persist Security Info=True;User ID=;Password=");
conn.Open();

SqlCommand command = new SqlCommand("Select id from [table1] where name=@zip", conn);

//command.Parameters.AddWithValue("@zip","india");
int result = command.ExecuteNonQuery();

// result gives the -1 output.. but on insert its 1
using (SqlDataReader reader = command.ExecuteReader())
{
    // iterate your results here
    Console.WriteLine(String.Format("{0}",reader["id"]));
}

conn.Close();

查询在 SQL Server 上运行良好,但我不明白为什么只有选择查询不起作用。

所有其他查询均有效。

最佳答案

SqlCommand.ExecuteNonQuery 方法

您可以使用 ExecuteNonQuery 执行目录操作(例如,查询数据库的结构或创建数据库对象(如表)),或者通过执行 UPDATE、INSERT 或删除语句。 尽管 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都填充有数据。 对于 UPDATE、INSERT 和 DELETE 语句,返回值是受命令影响的行数。当正在插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受一个或多个触发器影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也是-1。

SqlCommand.ExecuteScalar 方法 对连接执行 Transact-SQL 语句并返回受影响的行数。

所以没有。 SELECT 语句返回的语句数量,您必须使用 ExecuteScalar 方法。

引用:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery(v=vs.110).aspx

所以试试下面的代码:

SqlConnection conn = new SqlConnection("Data Source=;Initial Catalog=;Persist Security Info=True;User ID=;Password=");
conn.Open();

SqlCommand command = new SqlCommand("Select id from [table1] where name=@zip", conn);
command.Parameters.AddWithValue("@zip","india");
 // int result = command.ExecuteNonQuery();
using (SqlDataReader reader = command.ExecuteReader())
{
  if (reader.Read())
  {
     Console.WriteLine(String.Format("{0}",reader["id"]));
   }
}

conn.Close();

关于c# - 选择查询以从 SQL Server 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25739788/

相关文章:

c# - 使用值列表循环遍历 C# 中的字典

c# - 在与服务相同的解决方案中,难以在测试项目中调用在本地主机上运行的 WCF POST 服务

asp.net - 在 IIS 中启用内容过期可能有哪些缺点?

php - 从数据库中的单个单元格获取多个数据

html - 将 div 与左浮动对齐

asp.net/VB.net : FindControl, 而不是通过 ControlType 通过 ID

c# - 如何通过Azure功能上传大文件?

c# - 如何使用 LINQ C# 正确搜索 xml 文档

sql - 获取没有反馈的项目

mysql - ORDER BY 随机子级别的 SQL 语法?