单纯与数据库建立连接是没有意义的,建立到数据库的连接的目的就是要对数据库进行操作。本节介绍如何在C#中对数据库进行操作。
本小节介绍如何使用SqlCommand类提交对数据的添加数据命令。假设数据库中有一张名为People的表,表中有两列,分别为Name和Age。
创建一个Windows控制台应用程序,演示如何向数据库中添加数据。
(1)创建一个名为DBAdd的控制台应用程序项目。
(2)修改Program.cs文件的内容如下:
namespace DBAdd
{
class Program
{
static void Main(string[] args)
{
SqlConnection s = new SqlConnection();
string connectString = @"Data Source=bjtu-zhang\SQLEXPRESS;Initial
Catalog=Test;Integrated Security=True;Pooling=False";
s.ConnectionString = connectString;
try
{
s.Open();
Console.WriteLine(s.ServerVersion);
Console.WriteLine(s.Database);
Console.WriteLine(s.State);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
string sql = "insert into people values('wang','20')";
SqlCommand sc = new SqlCommand();
sc.CommandText = sql;
sc.Connection = s;
try
{
sc.ExecuteNonQuery();
Console.WriteLine("数据添加成功!");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
try
{
s.Close();
Console.WriteLine("数据库已关闭!");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
按Ctrl+F5组合键运行程序,运行结果如图10-21所示。
添加数据时,首先要给出添加命令的SQL语句,本例中为如下SQL语句:
string sql = "insert into people values('wang','20')";
将该SQL语句赋值到SqlCommand的CommandText属性中,同时需要给出SqlCommand使用的数据库连接,在其Connection中给出,最后执行ExecuteNonQuery命令即可。添加完数据后可以从Visual Studio 2005中查看变化,如图10-22所示。
图10-21 运行结果 图10-22 运行结果
选择“显示表数据”命令,如图10-23所示。可以看到程序中添加的数据已经位于表People中。
图10-23 运行结果
本小节使用SqlCommand类提交修改命令,将上一小节中添加的数据进行修改。
创建一个Windows控制台应用程序,演示如何修改数据库中的数据。
(1)创建一个名为DBUpdate的控制台应用程序项目。
(2)修改Program.cs文件的内容如下:
namespace DBUpdate
{
class Program
{
static void Main(string[] args)
{
SqlConnection s = new SqlConnection();
string connectString = @"Data Source=bjtu-zhang\SQLEXPRESS;Initial
Catalog=Test;Integrated Security=True;Pooling=False";
s.ConnectionString = connectString;
try
{
s.Open();
Console.WriteLine(s.ServerVersion);
Console.WriteLine(s.Database);
Console.WriteLine(s.State);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
string sql = "update people set age = 30 where name = 'wang'";
SqlCommand sc = new SqlCommand();
sc.CommandText = sql;
sc.Connection = s;
try
{
sc.ExecuteNonQuery();
Console.WriteLine("数据修改成功!");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
try
{
s.Close();
Console.WriteLine("数据库已关闭!");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
图10-24 运行结果
|
}
}
}
按Ctrl+F5组合键运行程序,运行结果如图10-24所示。
添加数据时,首先要给出添加命令的SQL语句,本例中为如下SQL语句:
string sql = "update people set age = 30 where name = 'wang'";
将该SQL语句赋值到SqlCommand的CommandText属性中,同时需要给出SqlCommand使用的数据库连接,在其Connection中给出,最后执行ExecuteNonQuery命令即可。同样,可以查看表数据,如图10-25所示。可以看到,表中的数据已经发生了变化。
图10-25 运行结果
本小节使用SqlCommand类提交删除命令,将上一小节中的数据删除。
创建一个Windows控制台应用程序,演示如何删除数据库中的数据。
(1)创建一个名为DBDelete的控制台应用程序项目。
(2)修改Program.cs文件的内容如下:
namespace DBDelete
{
class Program
{
static void Main(string[] args)
{
SqlConnection s = new SqlConnection();
string connectString = @"Data Source=bjtu-zhang\SQLEXPRESS;Initial
Catalog=Test;Integrated Security=True;Pooling=False";
s.ConnectionString = connectString;
try
{
s.Open();
Console.WriteLine(s.ServerVersion);
Console.WriteLine(s.Database);
Console.WriteLine(s.State);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
string sql = "delete from people where name = 'wang'";
SqlCommand sc = new SqlCommand();
sc.CommandText = sql;
sc.Connection = s;
try
{
sc.ExecuteNonQuery();
Console.WriteLine("数据删除成功!");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
try
{
s.Close();
Console.WriteLine("数据库已关闭!");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
按Ctrl+F5组合键运行程序,运行结果如图10-26所示。
添加数据时,首先要给出添加命令的SQL语句,本例中为如下SQL语句:
string sql = "delete from people where name = 'wang'";
将该SQL语句赋值到SqlCommand的CommandText属性中,同时需要给出SqlCommand使用的数据库连接,在其Connection中给出,最后执行ExecuteNonQuery命令即可。
同样,可以查看表数据,如图10-27所示。可以看到,表中的数据已经被删除。
图10-26 运行结果 图10-27 运行结果
数据库的强大功能体现在其对大量数据的管理,除了对数据的添加、删除和修改之外,还支持对数据的查询。本小节通过一个实例演示在C#中对数据库中数据的查询功能。首先向数据库中添加部分数据,如图10-28所示。
图10-28 添加数据
创建一个Windows控制台应用程序,演示如何从数据库中查询数据。
(1)创建一个名为DBSelect的控制台应用程序项目。
(2)修改Program.cs文件的内容如下:
namespace DBSelect
{
class Program
{
static void Main(string[] args)
{
SqlConnection s = new SqlConnection();
string connectString = @"Data Source=bjtu-zhang\SQLEXPRESS;Initial
Catalog=Test;Integrated Security=True;Pooling=False";
s.ConnectionString = connectString;
try
{
s.Open();
Console.WriteLine(s.ServerVersion);
Console.WriteLine(s.Database);
Console.WriteLine(s.State);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
string sql = "select * from people where age = '20'";
SqlCommand sc = new SqlCommand();
sc.CommandText = sql;
sc.Connection = s;
try
{
SqlDataReader dr = sc.ExecuteReader();
Console.WriteLine("数据查询成功!");
while (dr.Read())
{
Console.Write(dr[0].ToString());
Console.Write("\t");
Console.Write(dr[1].ToString());
Console.Write("\n");
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
try
{
s.Close();
Console.WriteLine("数据库已关闭!");
}
catch (Exception e)
图10-29 运行结果
|
Console.WriteLine(e.Message);
}
}
}
}
按Ctrl+F5组合键运行程序,运行结果如图10-29所示。
添加数据时,首先要给出添加命令的SQL语句,本例中为如下SQL语句:
string sql = "select * from people where age = '20'";
该语句查询了表People中Age为20的所有数据。查询时使用了ExecuteReader方法,返回了一个SqlData-
Reader类型的变量,通过使用While循环及其Read方法,循环输出了所有的返回数据。
如将SQL语句修改如下:
string sql="select * from people where age < '50'";
将返回所有Age小于50的所有数据,结果如图10-30所示。
图10-30 运行结果
|