在C#中选择简单的SQL?

在我当前的项目中,为了获得单个值(从表中选择id = val的列),前一个程序员通过使用数据行,数据表和sqldatadapter(当然还有sqlconnection)来获取该值。

是否有更简单的方法来进行简单的选择查询? 在php中,我可以使用mysql_query ,然后使用mysql_result ,我就完成了。

如果我能这样做会很好:

 SqlConnection conSql = new SqlConnection(ConnStr); SomeSqlClass obj = new SomeSqlClass(sql_string, conSql); conSql.Close(); return obj[0]; 

谢谢你的任何提示。

您可以跳过DataReaderDataAdapter ,只需在sql命令上调用ExecuteScalar()

 using (SqlConnection conn = new SqlConnection(connString)) { SqlCommand cmd = new SqlCommand("SELECT * FROM whatever WHERE id = 5", conn); try { conn.Open(); newID = (int)cmd.ExecuteScalar(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } 

您可能正在寻找SqlCommandSqlDataReader

 Dictionary users = new Dictionary(); using(SqlConnection connection = new SqlConnection("Your connection string")) { string query = "SELECT UserId, UserName FROM Users"; SqlCommand command = new SqlCommand(query, connection); connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) users.Add(reader.GetInt32(0), reader.GetString(1)); } connection.Close(); } 

实际上,有一个方法SqlCommand.ExecuteScalar(),它只返回返回结果第一行的第一个字段。 只为你。

.NET Framework类库SqlCommand .. ::。ExecuteScalar方法

执行查询,并返回查询返回的结果集中第一行的第一列。 其他列或行将被忽略。

你可以做一些非常相似的事情:

 using (SqlConnection conn = new SqlConnection(ConnStr)) using (SqlCommand cmd = new SqlCommand(sql_string, conn)) { conn.Open(); return cmd.ExecuteScalar(); } 

你可以使用SqlCommands executeScalar函数。 请看以下链接

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx