因为本例涉及到数据库,所以在开始之前请先在数据库里新建一个名为“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#如何把数据库里面的东西读出来,并且显示在文本框里面呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)