数据库连接字符串:
1.String constr="Data Source=.\\SQLEXPRESS;Initial Catalog=mydb;Integrated Security=True";
//.\\SQLEXPRESS:当不是Express版本时直接用.或localhost,表示当地数据库
//Initial Catalog:选择数据库
//Integrated Security:使用集成的Windows验证方式,或者令值为SSPI
2.Sql Server 2005中的Windows身份验证模式如下
string constr = "server=.;database=myschool;uid=sa;pwd=sa";
3.Sql Server 2005中的Sql Server身份验证模式如下:
string constr = "data source=.;initial catalog=myschool;user id=sa;pwd=sa";
有连接方式
SqlConnection连接数据库
SqlConnection con=new SqlConnection(conStr);
con.Open();
...
con.Close():
SqlCommand执行SQL命令
SqlCommand cmd1=new SqlCommand();//不带参数构造
String command="SELECT * FROM TEACHERS";
SqlCommand cmd2=new SqlCommand(command,con);//带参数构造
cmd1.Connection=con;//设置数据库连接
cmd2.CommandText="INSERT INTO TEACHERS VALUES(..)";//设置新的sql命令
cmd2.ExecuteNonQuery();//INSERT DELETE UPDATE
.ExecuteReader();//SELECT,返回SqlDataReader对象
.ExecuteScalar();//返回标量的查询执行
SqlDataReader读取数据库记录
属性:FieldCount 表示当前行中的列数
HasRows 表示当前SqlDataReader实例是否包含一行或多行
IsClosed 表示当前SqlDataReader实例是否关闭
方法:Read() 是当前SqlDataReader实例前进到下一条记录,返回True表示有结果
NextResult()
Close() 关闭当前SqlDataReader实例,记得关闭
GetFieldType(int column) 获取指定列的数据类型的Type,主要column从0开始
GetName(int column) 获取指定列的名称,注意column从0开始
GetBoolean、GetChar、GetDateTime、GetDecimal、GetDouble、GetFloat、GetInt16/32/64、GetString
注意:在不确定记录是否是空值的情况下,通常先通过IsDbNull()方法进行判断,再处理(GetString会异常)
无连接方式
SqlDataAdapter
属性:DeleteCommand InsertCommand SelectCommand UpdateCommand
方法:Fill()--获取数据库数据并填充到本地数据集DataSet或数据表DataTable
FillSchema()--获取数据库数据架构,填充到本地数据集DataSet或数据表DataTable
Update()--将本地数据集或数据表更新的数据库
DataSet:关系数据在内存中的表现形式
属性:Tables--包含在DataSet的DataTable的集合
Relations
方法:HasChanges()
AcceptChanges()
RejectChanges()
Clear()
CreateDataReader()
DataTable:表示内存数据表
属性:DataSet--所属DataSet
Columns--列集合
Rows--行集合
方法:
sqlserver实现mysql 的group_concat(使用stuff函数):
stuff((
SELECT ',' + [value]
FROM temp t
WHERE t.id = temp.id
FOR xml path('')) , 1 , 1 , '')