ADO.NET資料庫簡單操作
阿新 • • 發佈:2019-02-20
一、提交單條SQL語句
下面以一次資料庫插入為例
1.定義連線字串:Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=admin,如果是連線非本機的資料庫,在Server之後填寫IP地址,Server伺服器地址,DataBase資料庫名,Uid使用者名稱,Pwd密碼
2.建立連線物件 SqlConnection conn = new SqlConnection(connString);
3.開啟連線conn.Open();
4.編寫sql
5.建立Command物件,並封裝Connection和Sql語句SqlCommand cmd = new SqlCommand(sql, conn);
6.執行操作ExecuteNonQuery方法
int result = cmd.ExecuteNonQuery();
result的值為受影響的行數 7.關閉連線
conn.Close();
namespace ADO.NETDemo
{
class Program
{
static void Main(string[] args)
{
//定義連線字串
string connString = "Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=admin" ;
//建立連線物件
SqlConnection conn = new SqlConnection(connString);
//開啟連線
conn.Open();
if(ConnectionState.Open == conn.State)
{
Console.WriteLine("Connection is Opened");
}
//編寫Sql
string sql = "insert into Students(StudentName,Gender,Birthday,StudentIdNo,Age,PhoneNumber,StudentAddress,ClassId)";
sql += "values('{0}','{1}','{2}',{3},{4},'{5}','{6}',{7})";
sql = string.Format(sql, "呵呵", "男", "1990-09-12", 120225199609121213, 25, "15029635631", "天津", 1);
//建立Command物件
SqlCommand cmd = new SqlCommand(sql, conn);
//執行操作
int result = cmd.ExecuteNonQuery();
conn.Close();
if(ConnectionState.Closed == conn.State)
{
Console.WriteLine("Connection is Closed");
}
if(result == 1)
{
Console.WriteLine("新增成功");
}
else
{
Console.WriteLine("新增失敗");
}
Console.ReadKey();
}
}
}
二、提交多條Sql語句
將多條sql語句中間通過分號連線“;”,例子如下
namespace ADO.NETDemo
{
class Program
{
static void Main(string[] args)
{
//定義連線字串
string connString = "Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=admin";
//建立連線物件
SqlConnection conn = new SqlConnection(connString);
//開啟連線
conn.Open();
if(ConnectionState.Open == conn.State)
{
Console.WriteLine("Connection is Opened");
}
//編寫Sql
string sql = "insert into Students(StudentName,Gender,Birthday,StudentIdNo,Age,PhoneNumber,StudentAddress,ClassId)";
sql += "values('{0}','{1}','{2}',{3},{4},'{5}','{6}',{7})";
string sql1 = string.Format(sql, "呵呵1", "男", "1990-09-12", 120225199609101213, 25, "15029635631", "天津", 1);
string sql2 = string.Format(sql, "呵呵2", "男", "1990-09-11", 120225199609111215, 25, "15029635651", "天津", 1);
string sql3 = string.Format(sql, "呵呵3", "男", "1990-09-14", 120225199609121214, 25, "15029635631", "天津", 1);
string Sql = sql1 + ";" + sql2 + ";" + sql3;
//建立Command物件
SqlCommand cmd = new SqlCommand(Sql, conn);
//執行操作
int result = cmd.ExecuteNonQuery();
conn.Close();
if(ConnectionState.Closed == conn.State)
{
Console.WriteLine("Connection is Closed");
}
if(result == 1)
{
Console.WriteLine("新增成功");
}
else
{
Console.WriteLine("新增失敗");
}
Console.ReadKey();
}
}
}
這樣通過分號連線後,我們通過斷點除錯可以看到當前的sql
三、獲取標識列的值
在某些情景下我們可能需要拿到,新新增的記錄的id,這時候我們可以使用@@identity
獲取。
1.首先在sql之後新增@@identity
2.使用ExecuteScalar()方法,這個方法可以同時執行insert和select object result = cmd.ExecuteScalar();
ExecuteScalar方法的返回值是Object型
3.轉換型別取得標識列的值Convert.ToInt32(result)
程式碼如下:
namespace ADO.NETDemo
{
class Program
{
static void Main(string[] args)
{
//定義連線字串
string connString = "Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=admin";
//建立連線物件
SqlConnection conn = new SqlConnection(connString);
//開啟連線
conn.Open();
if(ConnectionState.Open == conn.State)
{
Console.WriteLine("Connection is Opened");
}
//編寫Sql
string sql = "insert into Students(StudentName,Gender,Birthday,StudentIdNo,Age,PhoneNumber,StudentAddress,ClassId)";
sql += "values('{0}','{1}','{2}',{3},{4},'{5}','{6}',{7});Select @@identity";
string sql1 = string.Format(sql, "呵呵00", "男", "1990-09-12", 120225099109101210, 25, "15029635631", "天津", 1);
//建立Command物件
SqlCommand cmd = new SqlCommand(sql1, conn);
//執行操作
object result = cmd.ExecuteScalar();
conn.Close();
if(ConnectionState.Closed == conn.State)
{
Console.WriteLine("Connection is Closed");
}
Console.WriteLine($"新新增的學員編號為{Convert.ToInt32(result)}");
Console.ReadKey();
}
}
}
結果
總結執行增刪改的步驟
- 建立Connection物件
- 組合sql語句insert、update、delete
- 建立Command物件,並封裝Connection和sql語句
- 開啟連線
- 執行ExecuteNonQuery()方法,返回受影響的行數
- 關閉連線