在这篇文章简要介绍SQL在C#中的使用,和MVC没有太大关系。
需要:
using System.Configuration;
using System.Data.SqlClient;
譬如,Controller中的一个方法:
public ActionResult Information()
{
string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
List<string> users = new List<string>();
using (SqlConnection conn = new SqlConnection(connectionString))
{
// Open the connection
conn.Open();
string sql = "SELECT * FROM UserProfile";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
users.Add(reader["UserName"].ToString());
}
reader.Close();
}
conn.Close();
}
ViewBag.Message = "Info";
return View(users);
}
先总体简要解释一下以上Controller方法代码:
- 我们先从Web.config读connection string。
- 用string list存取从数据库得到的资料。
- 当我们连接到数据库的时候,我们可以执行SELECT query
- 我们使用了SqlDataReader(这个对象提供只读单向数据的快速传递) http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx
其实一般而言,基本SQL操作需要以下5步,这里还是以上面的代码为例进行介绍:
1. 连接服务器
string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connectionString))
conn.Open();
2.SQL 字符串赋值(需要执行的sql命令)
string sql = "SELECT * FROM UserProfile";
3. 新建命令
using (SqlCommand cmd = new SqlCommand(sql, conn))
4. 执行命令
分为三种命令,相应调用不同的方法:
a 不需要查询的(插入,更新,删除)
cmd.ExecuteNonQuery();
该函数会返回收到影响的总行数。
b 只需要查询一个值的
cmd.ExecuteScalar();
该函数会返回使用的sql语言查询的结果
譬如:
string user_name = "John";
var sql = String.Format("SELECT Company FROM UserProfile WHERE [UserName] = '{0}'", user_name);
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
string test = cmd.ExecuteScalar().ToString();
}
c 需要同时查询得到多个值的
5. 关闭连接//新建一个SqlDataReader
SqlDataReader reader = cmd.ExecuteReader();
//读取一行数据到Reader中
(reader.Read())
{
//将Reader中的数据读取走
users.Add(reader["UserName"].ToString());
}
//关闭Reader
reader.Close();
conn.Close();
更多内容请参考:
没有评论:
发表评论