C# 连接 SQL Server 2008 基础操作+数据库增删改查
2017-07-23 10:30
585 查看
本人菜鸟,记录初次使用C#操作数据库时遇到的问题,各解决方案很多网络查阅资料,只是重新整合。
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增
4000
否有更便捷方式。日后跟进。
4.2删
编程时遇到问题:DELECT语句与REFERENCE约束 冲突
解决方法:删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
如图:
4.3改
/// <summary>
/// 更新数据库某值,UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
/// </summary>
/// <param name="sheetName">表名称</param>
/// <param name="columnName1">欲被修改列名称</param>
/// <param name="newValue">新值</param>
/// <param name="columnName2">定位列</param>
/// <param name="targetValue">定位列值</param>
/// <returns></returns>
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;
}
}
/// <summary>
/// 判断数据是否存在于数据库中
/// </summary>
/// <param name="sheetName">表名称</param>
/// <param name="columnName">列名称</param>
/// <param name="data">查找数据名称</param>
/// <returns></returns>
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查
/// <summary>
/// 查找表中所有数据
/// </summary>
/// <param name="sheetName">表名称</param>
/// <returns></returns>
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;
}
/// <summary>
/// 查找某一数据相关
/// </summary>
/// <param name="sheetName">表名称</param>
/// <param name="columnName">查找列</param>
/// <param name="data">查找列中某一数据</param>
/// <returns></returns>
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;
}
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增
/// <summary> /// 增加数据库内容--设备错误代码表 /// </summary> /// <param name="sheetName"></param> /// <param name="str1">本数据库中表示DeviceID</param> /// <param name="str2">本数据库中表示DeviceErrorCode</param> 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函数以进行重载,是
4000
否有更便捷方式。日后跟进。
4.2删
/// <summary> /// 删出数据库内容 /// </summary> 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改
/// <summary>
/// 更新数据库某值,UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
/// </summary>
/// <param name="sheetName">表名称</param>
/// <param name="columnName1">欲被修改列名称</param>
/// <param name="newValue">新值</param>
/// <param name="columnName2">定位列</param>
/// <param name="targetValue">定位列值</param>
/// <returns></returns>
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;
}
}
/// <summary>
/// 判断数据是否存在于数据库中
/// </summary>
/// <param name="sheetName">表名称</param>
/// <param name="columnName">列名称</param>
/// <param name="data">查找数据名称</param>
/// <returns></returns>
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查
/// <summary>
/// 查找表中所有数据
/// </summary>
/// <param name="sheetName">表名称</param>
/// <returns></returns>
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;
}
/// <summary>
/// 查找某一数据相关
/// </summary>
/// <param name="sheetName">表名称</param>
/// <param name="columnName">查找列</param>
/// <param name="data">查找列中某一数据</param>
/// <returns></returns>
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;
}
相关文章推荐
- 学习笔记:jdbc连接、操作数据库SQL Server 2008 ——MyEclipse web示例
- ADO对SQL Server 2008数据库的基础操作
- [C#对sql操作]C#对sql server 2008数据库操作
- Visual C# 2008+SQL Server 2005 数据库与网络开发--8.2.2 用户数据操作的并发
- 关于c# 与sql server 2008数据库连接
- 学习笔记:jdbc连接、操作数据库SQL Server 2008
- C#进阶ADO.NET基础一 基本概念、数据库连接操作基础
- Visual C# 2008+SQL Server 2005 数据库与网络开发--7.1.2 连接数据库
- C# ADO.net连接数据库 进行增删改查操作
- Visual C# 2008+SQL Server 2005 数据库与网络开发――第2章 C#语言基础
- 使用VS2010连接SQL Server 2008数据库混合编程以实现对数据库的操作
- 学习笔记:jdbc连接、操作数据库SQL Server 2008(二)
- C#程序连接Sql Server 2008 R2数据库
- c#连接SQL Server 数据库
- Java语句轻松实现与数据库MYSQL【本地数据库】的连接,和对数据库的增删改查操作
- SQL Server 2008连接Oracle操作步骤详细记录
- C#操作数据库基础实例《密码管理工具》
- Visual C# 2008+SQL Server 2005 数据库与网络开发――3.3.3 创建项目
- SQL Server 2008 R2如何开启数据库的远程连接
- Java使用tomcat连接Sql server 2008数据库