在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];
谢谢你的任何提示。
您可以跳过DataReader
和DataAdapter
,只需在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); } }
您可能正在寻找SqlCommand
和SqlDataReader
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