------- Windows Phone 7手機開發、.Net培訓、期待與您交流! -------
一、關於output的使用:
對數據進行insert操作,是否苦於過怎樣獲得插入的Id值?當然方法很多,這裏記錄一種:使用output函數。在SqlServer2005以及以後版本,可以使用該函數。可以輸入sql語句:
insert into UserInfo(LoginId,Password) output inserted.Id values('11','11')
接着用ExecuteScalar()方法執行(該方法回返回第一行第一列的Object類型值),這樣就獲得了剛插入記錄的主鍵。output表示要輸出一個值,而Id則指返回的列的名稱。
二、sqlserver與C#中常用字段類型的對應:
SQLSERVER |
C# |
Int |
Int |
Bigint |
Long |
Nvarchar |
String |
Bit(0,1) |
Bool |
Money |
Decimal |
三、與MS SqlServer數據庫相關操作:
1. 連接字符串:
1. 連接字符串:
string sqlConn =”Data Source=.;Initial Catalog= DatabaseName;User ID=sa;Password=pwdStr”;
2.連接數據庫進行操作--SqlDataReader與DataSet:
using(SqlConnection conn = new SqlConnection(sqlConn))
{
conn.Open();
using(SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText=”select * from students”;
using(SqlDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
{
int age = reader.getInt32(0);
int name = reader.GetString();
}
}
}
}
{
conn.Open();
using(SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText=”select * from students”;
using(SqlDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
{
int age = reader.getInt32(0);
int name = reader.GetString();
}
}
}
}
SqlDataReader中查詢結果存放在服務端,是連接相關的,不是放在程序中;SqlDataReader只是相當於放了一個指針(遊標),只能讀取當前遊標指向的行,一旦斷開連接就不能再讀取。這樣好處是無論查詢多少條,對程序佔用的內存幾乎沒有影響;適合大數據量。
DataSet:數據集的好處降低數據庫服務器壓力,存在本地而非服務器,便於操作!適合小數據量。
DataSet dataset = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataset);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataset);
DataSet包含若干表DataTable,DataTable包括若干行DataRow.
使用for(int i=0;i<dataSet.Table[0].Rows.count;i++)或者foreach(DataRow row in dataset.Table[0].Rows)來讀取每行數據
------- Windows Phone 7手機開發、.Net培訓、期待與您交流! -------