一、数据库访问
1、数据库连接
为了让连接对象知道将要访问的数据库文件在哪里,用户必须将这些信息用一个字符串连接,数据库连接字符串中需要提供必要信息包括服务器名、数据库名称和数据库的验证方式,另外可以指定其他的信息。
string connectionString= "Data Source=服务器地址;Initial Catalog=数据库名;User Id=用登录账户;Password=登录密码";
2、查询数据库
实现步骤:
(1)使用SqlConnection对象连接数据库
(2)使用Command对象对数据源进行操作,实现操作的方式可以使用SQL语句,也可以使用存储过程。推荐使用SQL语句
情况一:查询,返回一个查询值,返回查询有效:
public class AdminBLL
{
public static int[] sysLogin(UserModel m)
{
string str = "select 列名 from 数据表名 where 查询条件"; //查询数据库
UserDAL d = new UserDAL();
return d.ExecuteScalar(str);//返回大于0,则表示查询成功
}
}
public class UserDAL
{
string strCon= "";//数据库连接,填写服务器名,账号、密码等
SqlConnection conn;
s>
public int[] ExecuteScalar(string str) //函数查询后返回一个数组
{
int[] returndata={0,0};
try
{
conn = new SqlConnection(strCon);//创建数据库连接对象
conn.Open();//打开数据库连接
SqlCommand comm = new SqlCommand(str, conn);//创建SqlCommand对象
Object objRusult=comm.ExecuteScalar();//用于执行SELECT查询命令,返回数据中第一行的第一列值
SqlDataReader sqldr = comm.ExecuteReader();//用于执行SELECT查询命令,并返回一个DataReader对象
while (sqldr.Read())
{
int i =Convert.ToInt32 ( sqldr[0]);//返回查询结果
returndata[1] = i;
}
conn.Close();//关闭数库连接
if (objRusult != null)//对象非空,表示本次查询有效
{
returndata[0] = 1;
return returndata;
}
else
{
returndata[0]=0;
return returndata;
}
}
catch (Exception Error)
{
throw Error;
}
}
}
情况二:使用DataGridView控件显示全部的查询结果
(1) WinForm中声明DataGridView控件
DataGridView DataView2;
DataView2 = new DataGridView();
panel2.Controls.Add(DataView2);
DataView2.Size = new Size(1040, 564);
DataView2.Location = new Point(2, 170);
DataView2.Font = new Font("Arial", 15);
DataView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;
DataView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
DataView2.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllHeaders;
DataView2.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
DataView2.ColumnHeadersHeightSizeMode =
DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
DataView2.ClearSelection();
DataView2.TabStop = false;
DataView2.CurrentCell = null;
DataView2.SelectionMode = DataGridViewSelectionMode.CellSelect;
DataView2.ColumnHeadersHeight = 50;
DataView2.Visible = false;
DataView2.BackgroundColor = Color.White;
(2)查询过程
//query processing event
private void panel2_search()
{
book.Title = Tb1.Text.ToString().Trim();//获取要查询的判别条件
SearchBookBLL.searchBook(book);
DataView2.DataSource = SearchBookBLL.ds.Tables [0];//将查询的数据集显示在DataView
DataView2.Visible = true;
}
public class SearchBookBLL
{
public static DataSet ds;//声明数据集对象
private static string str;
private static void sql(Book_info m)
{
str = @"select";//设置SQL查询语句
}
//search media
public static void searchBook(Book_info m)
{
sql(m);//generate SQL search sentence
SearchDAL d = new SearchDAL();
d.ExecuteSearch(str);//select from mssql
SearchBookBLL.ds = SearchDAL.ds;//获取查询的数据集
}
}
public class SearchDAL
{
private SqlDataAdapter da;//声明数据库桥接对象
public static DataSet ds;//设置查询数据集
private static SqlConnection con()
{
return new SqlConnection("");//连接语句
}
public void ExecuteSearch(string str)
{
SqlConnection con = SearchDAL.con();//创建数据库连接对象
try
{
con.Open();
da = new SqlDataAdapter(str, con);//获取数据表中查询后的所有数据
ds = new DataSet();//创建数据集对象
da.Fill(ds);//填充数据集
}
catch (Exception Error)
{
throw Error;
}
finally
{
con.Close();
}
}
}
3、修改数据
public static int UserModify(Stu_info m, int modifyDataflag,string username)
{
string str = "";
str = "update 数据表名 set 列名=值 where 条件";
InsertDAL d = new InsertDAL();
b = d.ExecuteInsert(str);
return b;//返回大于0,代表修改数据库有效
}
public class InsertDAL
{
public static string lib_card = string.Empty;
private int b = 0;
private static SqlConnection con()
{
return new SqlConnection("");//数据库连接字符串
}
public int ExecuteInsert(string str)
{
SqlConnection con = InsertDAL.con();
try
{
con.Open();
SqlCommand com = new SqlCommand(str, con);
b = com.ExecuteNonQuery();
}
catch (Exception Error)
{
throw Error;
}
finally
{
con.Close();
}
return b; //return resultObject
}
}
4、删除数据
删除语句与修改数据库相同,只是将修改SQL语句改为删除即可
str = "delete from 数据表明 where 删除条件 ";
5、插入数据
插入数据也是在修改数据库的基础上,修改SQL语句
str = "insert 表名(列名) values(值)";