用c# asp.net做实现与数据库的连接,增删改查

用c# asp.net做实现与数据库的连接,增删改查,第1张

因为本例涉及到数据库,所以在开始之前请先在数据库里新建一个名为“test”的数据库,里面新建一个表:“users”,表里有三个字段:

id(int,不可为null,设为标识符,自增),name(nvarcher(50)),age(nvarchar(50))

可以先在表里预设几条数据。

然后废话不多说,首先是 aspx里的代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="testaspxcs" Inherits="test" %>

<!DOCTYPE html>

<html xmlns=">

第一步,先建立与数据库的连接

第二步,在programcs里面写程序

using System;

using SystemCollectionsGeneric;

using SystemConfiguration;

using SystemData;

using SystemDataSqlClient;

using SystemLinq;

using SystemText;

using SystemThreadingTasks;

namespace CaterDal

{

public static class SqliteHelper

{

//从配置文本中读取连接字符串

private static string connStr = "Data Source=数据库的名称;Initial Catalog=SWALL;User ID=SA;Password=666";//是这个数据库没错吧?

public static DataTable GetDataTable(string sql,params SqlParameter[] ps)

{

using (SqlConnection conn=new SqlConnection(connStr))

{

//构造适配器对象

SqlDataAdapter pter=new SqlDataAdapter(sql,conn);

//构造数据表,用于接收查询结果

DataTable dt=new DataTable();

//添加参数

pterSelectCommandParametersAddRange(ps);

//执行结果

pterFill(dt);

//返回结果集

return dt;

}

}

}

}

第三步,在项目里面写程序

private void button4_Click(object sender, EventArgs e)

{

DataTable Dt = SqliteHelperGetDataTable("select from jjjj");

dataGridView1DataSource = Dt;

}

}

}

private void button4_Click(object sender, EventArgs e)

{

DataTable Dt = SqliteHelperGetDataTable("select from jjjj");

dataGridView1DataSource = Dt;

}

}

}

private void button4_Click(object sender, EventArgs e)

{

DataTable Dt = SqliteHelperGetDataTable("select from lishiji");

dataGridView1DataSource = Dt;

}

}

}

Form1cs项目名

private void button4_Click(object sender, EventArgs e)

{

DataTable Dt = SqliteHelperGetDataTable("select from jjjj");

dataGridView1DataSource = Dt;

}

}

}

FROM2CS项目名

using System;

using SystemCollectionsGeneric;

using SystemComponentModel;

using SystemData;

using SystemDrawing;

using SystemLinq;

using SystemText;

using SystemThreadingTasks;

using SystemWindowsForms;

using SystemDataOleDb;

using CaterDal;

namespace sqlssss

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

DataTable Dt = new DataTable();

Dt = SqliteHelperGetDataTable("select from lishiji");

DgvQueueDataSource = Dt;

}

}

}

使用C#生成dll文件并调用

一、创建dll文件:

例如生成一个md5编码判断状态的文件,即,输入一个字符串(stringA)和一个32位md5编码(stringB),判断此字符串A对应的32位md5编码是否与B相等,如果相等返回true,否则返回false。

打开VS2005,“文件”--》“新建”--“项目”,选择“Windows控件库”,命名后点击“确定”,在“cs”中输入以下代码:

usingSystem;

usingSystemCollectionsGeneric;

usingSystem;

usingSystemDrawing;

usingSystemData;

usingSystemWindowsForms;

usingSystemText;

usingSystemSecurity;

namespacemd5

{

publicpartialclassProgram:UserControl

{

#regionMD532位加密:GetMd5Str32

///

///32位MD5加密

///

///待加密字串

///加密后的字串

publicstaticstringGetMd5Str32(stringstrSource)

{

byte[]bytes=EncodingASCIIGetBytes(strSource);

byte[]hashValue=((SystemSecurity)SystemSecurity("MD5"))ComputeHash(bytes);

sb=new();

for(inti=0;i

{

sbAppend(hashValue[i]ToString("x2"));

}

returnsbToString()ToUpper();

}

#endregion

#region核对md5编码是否一致:()

///

///核对md5编码是否一致

///

///

///如果一致返回true,否则返回false

///

publicstaticbool(stringstr1,stringstr2)

{

stringmd5String=str1;//需要验证的字符串

stringmd5DbString=str2;//需要核对的32位md5编码

intresult=stringCompare(md5ProgramGetMd5Str32(str1),md5DbString,true);

if(result==0)

{

returntrue;

}

else

{

returnfalse;

}

}

#endregion

}

}

修改“Designercs”中的命名空间为“md5”,方法为“Program”,即可生成dll文件。

在inDebug文件假下,可以找到相应的dll文件。

二、部署dll流程:

首先把dll文件放到应用程序inDebug下;

然后在解决方案中添加引用:右键鼠标-->添加引用-->浏览-->选择dll放置路径后点击“确定”。

注意:要在应用文件头处使用usingmd5;命令。

测试应用程序代码,如下:Form1cs

usingSystem;

usingSystemCollectionsGeneric;

usingSystem;

usingSystemData;

usingSystemDrawing;

usingSystemText;

usingSystemWindowsForms;

usingmd5;

namespace

{

publicpartialclassForm1:Form

{

publicForm1()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

stringstr1=textBox1TextToString();

stringmd5String=textBox2TextToString();

textBox3Text=md5ProgramGetMd5Str32(str1);

textBox4Text=md5ProgramCheckMd5String(str1,md5String)ToString();

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

thisClose();

}

}

}

List 类是 ArrayList 类的泛型等效类

我们假设有一组数据,其中每一项数据都是一个结构。

public struct Item

{

public int Id;

public string DisplayText;

}

注意结构是不能给实例字段赋值的,即 public int Id = 1 是错误的。

using SystemCollectionsGeneric;

List<Item> items = new List<Item>();

这里读取数据库表a,然后遍历记录

将数据库中的值赋给item

//例如

Item item1 = new Item();

item1Id = 0;

item1DisplayText = "水星";

itemsAdd(item1);

Item item2 = new Item();

item2Id = 1;

item2DisplayText = "地球";

itemsAdd(item2);

NSERT

语句与

FOREIGN

KEY

约束"FK_VoteOptions_z_VoteInfo"冲突。该冲突发生于数据库"vote",表"dboz_VoteInfo",

column

'Vote_ID'。

不知道你数据库了解多少,从上面的例子来看是数据库内部出现问题而这个错误是很常见的!

如果你有两个表

比如说

学生表,学生成绩表

学生表当然是记录学生的基本资料的

这个表里面有一个pkid也就是自动编号

学生成绩表里面有一个typeid绑定于学生表的自动编号(foreign

key),这样做的好处就是没有存储重复的数据,并且可以快速的联系到学生资料!

假如说你的学生表里面有3个同学,那么自动编号就有3个,分别对应于每一个同学,假设自动编号的值分别是1,2,3,那么这个时候插入到学生成绩表的时候的那个typeid字段的值就只能是1,2,3的其中一个,否则就会如提示你的错误一样

我想我应该描述清楚了!

其实你可以删除掉约束,但是这样做的后果就是很有可能让你的数据对应出现混乱!

我给你写一个数据库的例子

--用户表以及用户blog表

create

table

userinfo

(

id

int

primary

key

identity(1,1),

name

varchar(30)

unique

not

null,

age

tinyint

check(age>0

and

age<=120)

)

--为了简单,就只有一个文章标题,分类也去掉

create

table

blogs

(

id

int

primary

key

identity(1,1),

typeid

int

constraint

myfk

foreign

key(typeid)

references

userinfo(id),

caption

varchar(50),

)

insert

into

userinfo

values

('a',3)

select

from

userinfo

--自动编号为1,反正blogs的typeid字段的值只能是userinfo中的id字段的值的其中一个,如果

--插入userinfo字段没有的数据到typeid中,那么就会错误

insert

into

blogs

values

(2,'a')--错误

insert

into

blogs

values

(1,'a')--正确

--insert

into

blogs

values

(2,'a')这个语句是错误的,如果你非要这样,那么只能够删掉约束

alter

table

blogs

drop

constraint

myfk--myfk是约束名,对应于你的是FK_VoteOptions_z_VoteInfo

insert

into

blogs

values

(2,'a')--这个时候就可以插入了,但是数据就不能正确对应了!

说了这么多,我想你应该可以明白!

这是C#中引用命名空间的语法格式: using + "命名空间名";

拿using System; 来说,在你的C#项目中,存在一个“引用”文件夹,里面就有Systemdll的程序集。

不同的命名空间中存在封装这不同的类库供我们使用,要只用类库中的内容,就必须在项目前面添加命名空间。

如果LZ想要了解不同命名空间中的内容,可上MSDN官网中查询。

Collections:集合,如:List<T>, Array等

Configuration:提供了 *** 作配置文件的类库

……诸如此类的

C#代码:

using System;

using SystemCollectionsGeneric;

using SystemText;

using SystemDataSqlClient;

namespace dd

{

class Program

{

static void Main(string[] args)

{

string str="server=;database=test;uid=sa;pwd=sa";

SqlConnection conn = new SqlConnection(str);

string CommandText="insert into test(test1,test2) values(90,30) SELECT CAST(scope_identity() AS int)";---返回最后一次插入数据的id

SqlCommand cmd = new SqlCommand(CommandText, conn);

connOpen();

int i=(int)cmdExecuteScalar();

connClose();

ConsoleWriteLine(i);

}

}

}

以上就是关于用c# asp.net做实现与数据库的连接,增删改查全部的内容,包括:用c# asp.net做实现与数据库的连接,增删改查、如何用C#获取MySQL数据库名、C#如何把数据库里面的东西读出来,并且显示在文本框里面呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10088089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存