C# 连接SQL2005数据库
----雷玄
https://www.wendangku.net/doc/bf2000249.html,
学会数据库连接,再会点C# 就可以打打酱酒----某人说的要想上手快,思路最重要:
数据库,应用程序,他们是两个不同的对象。现在我们要他们能够进行相互交换数据,需在在他们两之间建立一条通道。
至于这条通道是怎么建立的下面有介绍。
第一步,要确定数据库那边连接正常:
1.服务是否开启:
运行DOS 窗口:net start mssqlserver
如果弹出这些警告信息
你可以到这两个地方看看:服务器属性和用户属性
先右击属性。
然后把SQL和windows身份验证模式选上。
先右击属性。
看下登录属性是否被禁用,把启用选上。
可能还有一些其他问题,(在DOS窗口下:
sqlservermanager.msc),看看这里的服务是否启用
第二步:
/首先,定义连接字符串。
然后,数据库进行连接。
接着,打开数据库。
然后,执行SQL语句。
最后,记得关闭数据库。
在VS2010 编写相应的代码(using System.Data.SqlClient;//引用这个命名空间)
//定义连接字符串server=服务器名(.代表本地服务器)
string sqlcon = "Server=.;Database=myd;Uid=sa;Pwd=s";
//定义查询语句
string sqlquery = "select * from Soccer";
//用SqlConnection这个对象与数据库进行连接
SqlConnection con = new SqlConnection(sqlcon);
try
{
con.Open();//数据库连接之后,打开。
MessageBox.Show("数据库连接成功!");//看数据库是否连
接成功
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();//必须关闭
}
测试成功
数据库简单的增删改查:
1>S elect (在窗体中添加dataGridView1 这个控件)
a. 查询整个表,并把表里的数据放在dataGridView1 里,代码如下:
private void Form1_Load(object sender, EventArgs e)
{
string sqlcon = "Server=.;Database=MySchool;Uid=sa;Pwd=sa "
;
string sqlquery = "select * from Student";
DataSet ds = new DataSet();//创建一个数据集,把查询到的数据放在ds里
SqlConnection con = new SqlConnection(sqlcon);
try
{
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sqlquery, con);//用sqlDataAdapter 这个对象去与数据库(con)建立一个通道,在这个通道里执行sqlquery这条语句。
sda.Fill(ds);//把查询结果填充在ds里
//将获得数据源赋予数据库控件t
dataGridView1.DataSource = ds.Tables[0];// ds里的第一个表赋给dataGridView1.DataSource
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
}
测试成功:
b.查询指定列(通过textbox1 里的值,作为条件,进行查询) private void button1_Click_1(object sender, EventArgs e)
{
string sqlcon = "Server=.;Database=MySchool;Uid=sa;Pwd=s";
string sqlquery = string.Format("select LoginId,Sex,Major from Student where StudentId={0}",textBox1.Text);//格式化字符串
SqlConnection con = new SqlConnection(sqlcon);
try
{
con.Open();
// SqlCommand new出来的对象,可以执行sql语句
SqlCommand com = new SqlCommand(sqlquery,con);
//sqlDataReader 用来读取数据。 com.ExecuteReader()他的返回值是sqlDataReader,在这里不用new
SqlDataReader dataReader= com.ExecuteReader();
//用循环读取数据
while(dataReader.Read())
{
label2.Text = dataReader[0].ToString() + "--" + dataReader[1].ToString() + "--" + dataReader[2].ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
}
测试成功
C.插入数据
string sqlcon = "Server=.;Database=MySchool;Uid=sa;Pwd=s";
string sqlInsert = string.Format("insert into dbo.Admin(LoginId,LoginPwd) values('{0}','{1}')", textBox1.Text, textBox2.Text);
SqlConnection con = new SqlConnection(sqlcon);
try
{
con.Open();
SqlCommand com = new SqlCommand(sqlInsert, con);
//用ExecuteNonQuery()这个方法返回数据。
com.ExecuteNonQuery();
MessageBox.Show("添?¨a加¨?成¨|功|");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
测试成功:
d.改,删的用法是一样的,这里就不多做说明。