当前位置:首页 » 操作系统 » c数据库增删改查

c数据库增删改查

发布时间: 2022-07-12 13:54:13

‘壹’ 如何在C#窗体程序中连接数据库并实现增、删、改、查啊我不会连接数据库,也不会在里面写代码实现增删改查

using System;
using System.Collections;
using System.Collections.Specialized;
using System.Data;
using System.Data.sqlClient;
using System.Configuration;
using System.Data.Common;
using System.Collections.Generic;
namespace CeptAuto.DBUtility
{
/// <summary>
/// 数据访问抽象基础类
/// Copyright (C) 2004-2008 By LiTianPing
/// </summary>
public abstract class DbHelperSQL
{
//数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.
public static string connectionString = PubConstant.ConnectionString;
public DbHelperSQL()
{
}

#region 公用方法
/// <summary>
/// 判断是否存在某表的某个字段
/// </summary>
/// <param name="tableName">表名称</param>
/// <param name="columnName">列名称</param>
/// <returns>是否存在</returns>
public static bool ColumnExists(string tableName, string columnName)
{
string sql = "select count(1) from syscolumns where [id]=object_id('" + tableName + "') and [name]='" + columnName + "'";
object res = GetSingle(sql);
if (res == null)
{
return false;
}
return Convert.ToInt32(res) > 0;
}
public static int GetMaxID(string FieldName, string TableName)
{
string strsql = "select max(" + FieldName + ")+1 from " + TableName;
object obj = GetSingle(strsql);
if (obj == null)
{
return 1;
}
else
{
return int.Parse(obj.ToString());
}
}
public static bool Exists(string strSql)
{
object obj = GetSingle(strSql);
int cmdresult;
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
cmdresult = 0;
}
else
{
cmdresult = int.Parse(obj.ToString());
}
if (cmdresult == 0)
{
return false;
}
else
{
return true;
}
}
/// <summary>
/// 表是否存在
/// </summary>
/// <param name="TableName"></param>
/// <returns></returns>
public static bool TabExists(string TableName)
{
string strsql = "select count(*) from sysobjects where id = object_id(N'[" + TableName + "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1";
//string strsql = "SELECT count(*) FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[" + TableName + "]') AND type in (N'U')";
object obj = GetSingle(strsql);
int cmdresult;
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
cmdresult = 0;
}
else
{
cmdresult = int.Parse(obj.ToString());
}
if (cmdresult == 0)
{
return false;
}
else
{
return true;
}
}
public static bool Exists(string strSql, params SqlParameter[] cmdParms)
{
object obj = GetSingle(strSql, cmdParms);
int cmdresult;
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
cmdresult = 0;
}
else
{
cmdresult = int.Parse(obj.ToString());
}
if (cmdresult == 0)
{
return false;
}
else
{
return true;
}
}
#endregion

#region 执行简单SQL语句

/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}

public static int ExecuteSqlByTime(string SQLString, int Times)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
cmd.CommandTimeout = Times;
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}

/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static int ExecuteSqlTran(List<String> SQLStringList)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
int count = 0;
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n];
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
count += cmd.ExecuteNonQuery();
}
}
tx.Commit();
return count;
}
catch
{
tx.Rollback();
return 0;
}
}
}
/// <summary>
/// 执行带一个存储过程参数的的SQL语句。
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString, string content)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(SQLString, connection);
System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@content", SqlDbType.NText);
myParameter.Value = content;
cmd.Parameters.Add(myParameter);
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
throw e;
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
/// <summary>
/// 执行带一个存储过程参数的的SQL语句。
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
/// <returns>影响的记录数</returns>
public static object ExecuteSqlGet(string SQLString, string content)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(SQLString, connection);
System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@content", SqlDbType.NText);
myParameter.Value = content;
cmd.Parameters.Add(myParameter);
try
{
connection.Open();
object obj = cmd.ExecuteScalar();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
throw e;
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
/// <summary>
/// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(strSQL, connection);
System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@fs", SqlDbType.Image);
myParameter.Value = fs;
cmd.Parameters.Add(myParameter);
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
throw e;
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}

/// <summary>
/// 执行一条计算查询结果语句,返回查询结果(object)。
/// </summary>
/// <param name="SQLString">计算查询结果语句</param>
/// <returns>查询结果(object)</returns>
public static object GetSingle(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
object obj = cmd.ExecuteScalar();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}

public static object GetSingle(string SQLString, int Times)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
cmd.CommandTimeout = Times;
object obj = cmd.ExecuteScalar();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}
/// <summary>
/// 执行查询语句,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
/// </summary>
/// <param name="strSQL">查询语句</param>
/// <returns>SqlDataReader</returns>
public static SqlDataReader ExecuteReader(string strSQL)
{
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(strSQL, connection);
try
{
connection.Open();
SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return myReader;
}
catch (System.Data.SqlClient.SqlException e)
{
throw e;
}

}
/// <summary>
/// 执行查询语句,返回DataSet

‘贰’ c语言中数据库的增删改查与链表的增删改查有什么区别

数据库使用来存贮大数据的,链表是一种数据结构二者不是同一个概念,如果你想关闭之后数据能够保存的话请使用数据库或者文件,否则的话就用链表吧

‘叁’ 谁知道用c语言向数据库做增删改查吗

我曾经写过C语言的数据库系统..
给你部分代码(一个销售函数)以作参考...
void
book_out()
//销售函数
{
char
temp;
EXEC
SQL
BEGIN
DECLARE
SECTION;
/*主变量定义开始.*/
int
Hout_shuliang;
int
Hshuliang;///////////
char
Hbook_id[11];
EXEC
SQL
END
DECLARE
SECTION;
/*主变量定义结束*/
lab3:
printf("请输入图书编号:");
scanf("%s",&Hbook_id);
printf("请输入卖出本数:");
scanf("%d",&Hout_shuliang);
//先将库存量取出到主变量
EXEC
SQL
select
book_shuliang
into
:Hshuliang
from
book_kucun
where
book_id=:Hbook_id;
if(Hshuliang<Hout_shuliang)
//假如库存不足,销售不成功.
{
printf("输入有误.没那么多库存,请重新输入.\n");
goto
lab3;
}
//将销售记录插入到book_out(销售表)数据表.
EXEC
SQL
insert
into
book_out
values(:Hbook_id,:Hout_shuliang,GETDATE());
EXEC
SQL
COMMIT
TRANSACTION;
/*事务提交*/
printf("售出成功,输入Y继续输入其他要售出的书.其他键返回主菜单:");
getchar();//////////////////////////
scanf("%c",&temp);
if(temp=='y'||temp=='Y')
goto
lab3;
}

‘肆’ C# C/S架构,如何让多台计算机访问一台计算机上的数据库并可以对其进行增删改查的操作

一般来说呢,会搞个域名,IP可能会变(路由器重启就变,换服务器也会变),先根据域名解析出放数据库服务器的IP地址,然后将连接数据库的字符串的IP设置成这个IP地址。其他的跟局域网一样。如果你确定你放数据库服务器的IP地址不会变就不用搞域名了。
现在有提供云服务的商家,可以租用数据库,直接给个IP和端口,跟局域网一样。

‘伍’ 用c语言实现对学生信息增删改,怎么做啊

要更详细答案,联系我,这个很难做的,起码要给点悬赏分作为酬劳啊!!!
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
//数据结构的定义
typedef struct node{
int id; //学号
char name[10]; // 姓名
int grade; //成绩
struct node * next; //指向下一节点的指针
}node,*list;

//函数的声明,必须按照声明来定义函数
void showMenu(); //显示菜单
void start(); // 主控程序
void init(list &h);// 初始化链表h
void printAnRecord(node * p);//输出p所指节点的值(id,name,grade)
void printList(list h);// 输出链表h的各节点的值
int del(list h,int n);//删除链表h中id为n的节点,成功删除返回1,若不存在则返回0
int insert(list h,int id,char * name,int grade);//在链表h中,插入节点(n,name,grade),若id重复返回0,否则返回1
node * searchByID(list h, int n);// 在链表h中查找id为n的节点,查找成功返回其指针,否则返回NULL
int update(list h,int n,int grade);// 将链表h中id为n的节点的成绩改为grade,若不存在该节点返回0,否则返回1
float average(list h); //返回链表h中各个节点成绩的平均值
int bulkInsert(list h);//在链表h中批量插入节点,以id=0结束,返回成功插入的节点数
void clearList(list h);//清空链表h(使其成为空链表)

void showMenu()
{ //显示菜单
puts(" 0----Bulk Insert ");
puts(" 1----Insert an Record");
puts(" 2----Delete an Record");
puts(" 3----Update an Record's grade");
puts(" 4--- Search an Record by stu_id");
puts(" 5----Print all Record");
puts(" 6----Average of grade");
puts(" 7----Clear list");
puts(" 9----Exit");

}

//主控程序
void start()
{
list h; //链表
int choice; //功能选择
int id,grade,flag=1,m;
char name[10];

showMenu();
init(h); //初始化链表h,即建立空链表

while(flag){//若未退出程序
puts(" ******** Please input 1...9 ********* ");
scanf("%d",&choice);

switch(choice){ //根据选择的功能号,执行不同的操作
case 0 :
puts("input Stu_ID, Name , Grade (end by 0)");
m=bulkInsert(h);
printf(" %d Record insert successfully\n",m);
break;
case 1:
puts("input Stu_ID, Name , Grade: ");
scanf("%d",&id);
scanf("%s",name);
scanf("%d",&grade);
if( insert(h,id,name,grade) )
puts("Insert an Record successfully!");
else
puts("Sorry, blicate ID ");
break;
case 2:
puts("input Stu_ID to delet");
scanf("%d",&id);
if( del(h,id) )
puts("Delete an Record successfully");
else
puts("Sorry, ID no exit ");
break;
case 3:
puts("input Stu_ID and grade to update");
scanf("%d",&id);
scanf("%d",&grade);
if ( update(h,id,grade) )
puts("Update an Record successfully ");
else
puts("Sorry, ID no exit ");
break;
case 4:
puts("input Stu_ID to search");
scanf("%d",&id);
node *p;
if( p=searchByID(h,id) )
printAnRecord(p);
else
puts("Sorry, ID no exit ");
break;
case 5:
printList(h);
break;
case 6:
printf("The average grade is %6.2f \n ", average(h) );
break;
case 7:
clearList(h);
break;
case 9:
flag=0; //退出循环
break;

default:
puts(" Error ! Must Input (1...9) ");

}
}
}

void main()
{
//编程时要一个一个函数的调试完成后,最后再调用主控程序
start();

}

‘陆’ 数据库管理系统能对数据库中的数据进行查询、插入、修改和删除等操作,这种功能称为________。

数据库管理系统能对数据库中的数据进行查询、插入、修改和删除等操作,这种功能称为数据库的操纵功能。

数据定义功能:提供相应数据语言来定义数据库结构,它们刻画数据库框架,并被保存在数据字典中。数据操纵功能:实现对数据库数据的基本存取操作(检索、插入、修改和删除)。数据控制功能:数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。

(6)c数据库增删改查扩展阅读:


按功能划分,数据库管理系统大致可分为6个部分:

模式翻译:提供数据定义语言(ddl)。用它书写的数据库模式被翻译为内部表示。数据库的逻辑结构、完整性约束和物理储存结构保存在内部的数据字典中。数据库的各种数据操作(如查找、修改、插入和删除等)和数据库的维护管理都是以数据库模式为依据的。

应用程序的编译:把包含着访问数据库语句的应用程序,编译成在dbms支持下可运行的目标程序。

交互式查询:提供易使用的交互式查询语言,如SQL.DBMS负责执行查询命令,并将查询结果显示在屏幕上。

数据的组织与存取:提供数据在外围储存设备上的物理组织与存取方法。

事务运行管理:提供事务运行管理及运行日志,事务运行的安全性监控和数据完整性检查,事务的并发控制及系统恢复等功能。

数据库的维护:为数据库管理员提供软件支持,包括数据安全控制、完整性保障、数据库备份、数据库重组以及性能监控等维护工具。

数据库管理系统的技术特点:

采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享。

具有较高的数据和程序独立性,数据库的独立性有物理独立性和逻辑独立性。

数据库系统为用户提供了方便的用户接口。

数据库系统提供4个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性。数据库中各个应用程序所使用的数据由数据库系统统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制。

增加了系统的灵活性。

参考资料来源:网络-数据库管理系统

‘柒’ C语言一维数组的增,删,改,查的编程例子,要简单点的!会的教一下

有谭浩强那本书么?
看一下数组部分就好了。
数组定义好了,是不能增删的。只能对数组元素赋值,查找之类的操作。定义数组就简单了:
类型说明
数组名
【元素个数】
其中元素个数不能是变量,只能是常量。例如定义一个五个元素的整形arr数组
int
arr【5】。给数组赋值:arr【x】=数值。
其中x只能是0-5,数组第一个元素为0,而不是1。查找你就要首先学会那几个查找的算法。就懂了。

‘捌’ 求教三层架构实现登录并操纵数据库增删改查我是学C

所谓的三层架构就是将展示层、控制层和模型层层分开,通过接口的方式实现三层之间的解偶。展示层完成的试将业务信息展示给用户并将业务数据从用户收集,完成必要的合法性校验后通过接口传递给控制层;
控制层呢则是根据业务数据完成严格的数据校验,组装必要的业务数据,将不同的业务请求提交不同的业务处理模块(也就是模型层)完成业务处里,然后将模型层的返回数据转换为展示层需要的数据,进行展示;
模型层就是进行业务处里的单元,完成各种业务逻辑的处理、数据库的访问等等;其实这一层可更细分为业务处里层和数据访问层,也就是DAO层

明白了这些内容,你就应该明白你的需要了:
1、展示层:
(1)登录页面,请用户输入用户明和密码,必要时生成验证码(刚学,可以先不实现这个),简单验证后(比如数据长度等等)提交后将数据转给控制层的登录处理模块;
(2)登录成功页面:用户登录成功展示的页面(这是你的业务需要)
(3)登录失败页面:密码验证失败后的展示页面,可以转到登录页面并提示失败,或者另建立新页面;
2、控制层:
这里控制层只有一个处理模块:登录验证。将展示层提交的数据进行业务逻辑验证,比如:登录名是什么结构、不能包含什么数据;密码多长、需要什么数据、不能包含什么数据等等,都是你的业务规定;如果不成功直接返回展示层提示存在问题;通过后调用模型层的登录处理模块,进行业务处里;如果模型层处理成功,根据需要转到成功页面或者失败页面(展示层);必要时准备会话信息参数,以备后用;
3、模型层:
根据用户登录名丛书据库中读取用户信息,检验密码是不是正确(必要时后有密码加密处理);用户状态是否正确,是否允许登录等等信息校验后将结果返回就可以了

热点内容
tplink无internet访问 发布:2025-01-23 03:15:18 浏览:566
原神用安卓手机玩为什么画质那么低 发布:2025-01-23 03:09:31 浏览:847
空调压缩机是外机吗 发布:2025-01-23 03:09:31 浏览:950
大学数据库学 发布:2025-01-23 02:54:30 浏览:588
部队营区监控系统录像存储多少天 发布:2025-01-23 02:49:26 浏览:523
oraclelinux用户名和密码 发布:2025-01-23 02:43:06 浏览:404
安卓手机主页滑动屏幕怎么设置 发布:2025-01-23 02:41:15 浏览:225
小脸解压 发布:2025-01-23 02:24:17 浏览:368
网易电脑版我的世界布吉岛服务器 发布:2025-01-23 02:20:17 浏览:985
xlc编译选项 发布:2025-01-23 02:11:25 浏览:721