一、建库+建表
VS创建一个控制台应用程序:
(1)、设立连接对象
(2)、定义SQL语句
(3)、打印状态
一开始,建库和建表我是分开来做的:
库,用的是昨天的建好的那个。
表,那么就现在建。
具体代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
namespace SQLdemo1
{
class Program
{
static void Main(string[] args)
{
//打开数据库连接
SqlConnection conn = new SqlConnection("server=.;database=TF_DB1;uid=sa;pwd=1234567");
//判断数据库状态
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
//定义SQL语句
string sql = "create table student" + "(num varchar(50),name varchar(255),age int)";
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
cmd.ExecuteNonQuery();
Console.WriteLine("数据表创建成功。");
}
catch (SqlException ae)
{
Console.WriteLine("数据表创建失败。" + ae.Message.ToString());
}
finally
{
conn.Close();//对数据库操作完成后,需要关闭数据库,释放内存
}
Console.ReadKey();
}
}
}
结果如下:
后来,我思考了一下,建库和建表能不能在一段代码内完成,于是就有了下面这一段代码:
(也不知道对不对,望各位指正)
具体代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;//添加引用
using System.Data.SqlClient;
namespace SQLdemo3
{
class Program
{
static void Main(string[] args)
{
//打开数据库连接
SqlConnection conn = new SqlConnection("server=.;database=;uid=sa;pwd=123456789jn");
//判断数据库状态
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
//定义SQL语句
string sql = null;
sql = "create database persons ";
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
cmd.ExecuteNonQuery();
Console.WriteLine("数据库创建成功。");
string sqlMessage = null;
sqlMessage = "use persons " + "create table information_demo" + "(id_num varchar(50), name varchar(255), age int, address varchar(255), year int)";
SqlCommand Scmd = new SqlCommand(sqlMessage, conn);
try
{
Scmd.ExecuteNonQuery();
Console.WriteLine("数据表创建成功。");
}
catch (SqlException ae)
{
Console.WriteLine("数据表创建失败。" + ae.Message.ToString());
}
}
catch (SqlException ae)
{
Console.WriteLine("数据库创建失败。" + ae.Message.ToString());
}
finally
{
conn.Close();//对数据库操作完成后,需要关闭数据库,释放内存
}
Console.ReadKey();
}
}
}
创建结果如下:
SQL server中的结果:
虽然不知道对不对,但能建成,说明没有大问题。
二、插入数据+读表
插入数据
插入数据用的是:INSERT INTO 表名称 VALUES (值1, 值2,…)
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;//添加引用
using System.Data.SqlClient;
namespace SQLdemo3
{
class Program
{
static void Main(string[] args)
{
//打开数据库连接
SqlConnection conn = new SqlConnection("server=127.0.0.1;database=persons;uid=sa;pwd=123456789jn");
//判断数据库状态
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
string sql = "insert into information_demo values"
+ " ('001','张三',23,'上海',3),"
+ "('002', '李四', 25, '南京', 3),"
+ "('003', '王五', 22, '北京', 3),"
+ "('004', '马六', 26, '杭州', 3)";
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
cmd.ExecuteNonQuery();
Console.WriteLine("数据表更新成功");
}
catch (SqlException ae)
{
Console.WriteLine("数据表更新失败。" + ae.Message.ToString());
}
finally
{
conn.Close();//对数据库操作完成后,需要关闭数据库,释放内存
}
Console.ReadKey();
}
}
}
结果如下:
SQL server结果如下:
读取数据
读表用的是:SELECT * FROM 表名称
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
namespace SQLdemo2
{
class Program
{
static void Main(string[] args)
{
string sql = "server=.;database=persons;uid=sa;pwd=123456789jn";
SqlConnection conn = new SqlConnection(sql);
try
{
conn.Open();
}
catch (Exception ex)
{
Console.WriteLine("链接错误:" + ex.Message);
}
string sqlMessage = null;
sqlMessage = "select * from information_demo";
SqlCommand sCmd = new SqlCommand(sqlMessage, conn);
SqlDataReader sdr = null;
try
{
sdr = sCmd.ExecuteReader();
Console.WriteLine("编号 姓名 年龄 地址 工龄");
while (sdr.Read())
{
Console.WriteLine(sdr["id_num"] + " " + sdr["name"] + " " + sdr["age"] + " " + sdr["address"] + " " + sdr["year"]);
}
conn.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}
}
结果如下:
over