1、安装数据库
SQLServer2008下载:http://www.jb51.net/softs/43885.html
破解码:PTTFM-X467G-P7RH2-3Q6CG-4DMYB
安装:https://jingyan.baidu.com/article/948f592434b407d80ef5f97d.html
2,、启动SQLServer2008,连接数据库服务器
如果遇到连接失败问题,可参见http://www.jb51.net/article/59352.htm
如果在修改“SQL Server网络配置”过程中无内容,建议重装数据库。
登陆服务器名称为“local”,身份验证为“Windows身份验证”。初次登陆成功后,“对象资源管理器”中无内容,尚不知道原因,再次连接后,其出现本地数据库相应信息。
SQLServer身份验证登陆方法,可参见http://www.2cto.com/database/201308/232907.html
关于数据库中简单操作,推荐连接,还不错的一个例子:https://wenku.baidu.com/view/95e34d4c48d7c1c708a145b7.html
过程中有可能会遇到:https://jingyan.baidu.com/article/03b2f78c4c32ad5ea237ae0b.html
MS SQL Server 2008 在建完表后,如果要插入任意列,则提示:
当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改,如果强行更改会出现以下提示:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。
工具-〉选项-〉左侧有个 设计器-〉表设计器和数据库设计器 -> 阻止保存要求重新创建表的更改(右侧)
把钩去掉,就可以了
3.连接数据库
具体方法可参见:https://jingyan.baidu.com/article/d169e186b0a432436611d8d2.html
4.增删改查
4.1增
///
/// 增加数据库内容--设备错误代码表
///
///
/// 本数据库中表示DeviceID
/// 本数据库中表示DeviceErrorCode
public int addData(string sheetName, string str1, string str2)
{
conn.Open();
SqlCommand cmd = new SqlCommand("insert into " + sheetName + " values('" + str1 + "','" + str2 + "')", conn);
try
{
cmd.ExecuteNonQuery();
conn.Close();
}
catch (SqlException e)
{
conn.Close();
return e.Number;
}
return 1;
}
根据数据库内容不同,需要编写不同参数的addData函数以进行重载,是否有更便捷方式。日后跟进。
4.2删
///
/// 删出数据库内容
///
public void delete(string sheetName,string columnName,string deleteData)
{
conn.Open();//打开数据库
SqlCommand cmd = new SqlCommand("delete from " + sheetName + " where " + columnName + "='" + deleteData + "'", conn);
cmd.ExecuteNonQuery();
conn.Close();//关闭数据库
}
编程时遇到问题:DELECT语句与REFERENCE约束 冲突
解决方法:删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
如图:
4.3改
///
/// 更新数据库某值,UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
///
/// 表名称
/// 欲被修改列名称
/// 新值
/// 定位列
/// 定位列值
///
public int update(string sheetName, string columnName1, string newValue,string columnName2,string targetValue)
{
conn.Open();
SqlCommand cmd = new SqlCommand("update " + sheetName + " set " + columnName1 + "='" + newValue + "' where " + columnName2 + "='" + targetValue + "'", conn);
if (dataExist(sheetName, columnName2, targetValue))
{
try
{
cmd.ExecuteNonQuery();
conn.Close();
}
catch (SqlException e)
{
conn.Close();
return e.Number;
}
return 1;
}
else
{
conn.Close();
return 0;
}
}
///
/// 判断数据是否存在于数据库中
///
/// 表名称
/// 列名称
/// 查找数据名称
///
private bool dataExist(string sheetName, string columnName,string data)
{
//conn.Open();//打开数据库
SqlCommand myCmd = new SqlCommand("select count(*) from "+sheetName+" where "+columnName+"='"+data+"'", conn);
//int n = myCmd.ExecuteNonQuery();
int n = int.Parse(myCmd.ExecuteScalar().ToString());
//conn.Close();
if (n > 0)
{
return true;
}
else
{
return false;
}
}
4.4查
///
/// 查找表中所有数据
///
/// 表名称
///
public DataSet select(string sheetName)
{
//查找所有设备状态信息
SqlCommand cmd = new SqlCommand("select * from "+sheetName, conn);
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet dataSet = new DataSet();
sda.Fill(dataSet, "cs");
return dataSet;
}
///
/// 查找某一数据相关
///
/// 表名称
/// 查找列
/// 查找列中某一数据
///
public DataSet select(string sheetName,string columnName,string data)
{
SqlCommand cmd = new SqlCommand("select * from " + sheetName + " where " + columnName + " in ('" + data + "')", conn);
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet dataSet = new DataSet();
sda.Fill(dataSet, "cs");
return dataSet;
}