求一个C#对SQL2005增删改查的实例代码 20

应该有很多种方法,要求最简单的一种。或者高手帮我解析一下下面的代码,以下的代码我主要是不明白哪些是可变名词,如:数据库名、表名、字段、控件名,别的到好说固定的复制进就可以... 应该有很多种方法,要求最简单的一种。
或者高手帮我解析一下下面的代码,以下的代码我主要是不明白哪些是可变名词,如:数据库名、表名、字段、控件名,别的到好说固定的复制进就可以。
——————————————————————————————————————————————————————————————————————————
db1.mdb 是库名吗?a和b是什么,SP1,SP2是什么,T1是表名吗?name,pwd?

string path = Application.StartupPath + "\\db1.mdb"; OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" + path + ";Persist Security Info=False");//创建连接对象,;连接字符串

con.Open(); //连接数据库

增 :
string sql = "insert into t1(name,pwd) values (@a,@b)";
ITPUB个人空间:
OleDbParameter p1 = new OleDbParameter("@a", textBox1.Text);
OleDbParameter p2 = new OleDbParameter("@b", textBox2.Text);
OleDbCommand com = new OleDbCommand(sql, ole);
com.Parameters.Add(p1);
com.Parameters.Add(p2);
com.ExecuteNonQuery();

删:
string sql = " delete from t1 where name = @a";
OleDbParameter p1 = new OleDbParameter("@a", textBox1.Text);
OleDbCommand com = new OleDbCommand(sql, ole);
com.Parameters.Add(p1);
com.ExecuteNonQuery();

改:
string sql = " update t1 set pwd = @a where name = @b";
OleDbParameter p1 = new OleDbParameter("@a", textBox1.Text); OleDbParameter p2 = new OleDbParameter("@b", textBox2.Text); OleDbCommand com = new OleDbCommand(sql, ole); com.Parameters.Add(p1);
com.Parameters.Add(p2);
com.ExecuteNonQuery();

查:
string sql = "select * from t2 whereName=@aandPwd=@b";
OleDbParameter p1 = new OleDbParameter("@a", textBox1.Text);
OleDbParameter p2 = new OleDbParameter("@b", textBox2.Text);
OleDbCommand com = new OleDbCommand(sql, con);

com.Parameters.Add(p1);
com.Parameters.Add(p2);
OleDbDataReader dr = com.ExecuteReader();// 与前三者不同
if (dr.Read())
MessageBox.Show("登录通过!");
}
还是不太明白,a,b,p1,p2的用法
展开
 我来答
xu_micheal
2009-08-14 · TA获得超过380个赞
知道答主
回答量:108
采纳率:0%
帮助的人:0
展开全部
解析一下下面的代码,数据库名、表名、字段、控件名。

/*
下面这句是 取到放在本项目下的数据文件db1.mdb的路径
*/
string path = Application.StartupPath + "\\db1.mdb";

OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" + path + ";Persist Security Info=False");//创建连接对象,;连接字符串

con.Open(); //连接数据库

增 :

/*
下面这句是 向名为t1的表插入数据,name,pwd都是列名,@a, @b是参数名
*/
string sql = "insert into t1(name,pwd) values (@a,@b)";

/*
下面这两句是实例化两个参数对象p1, p2,用来向sql语句中添加参数@a,@b
并通过这两个参数对象给参数@a,@b赋值,参数值可变
*/
OleDbParameter p1 = new OleDbParameter("@a", textBox1.Text);
OleDbParameter p2 = new OleDbParameter("@b", textBox2.Text);

OleDbCommand com = new OleDbCommand(sql, con);
com.Parameters.Add(p1);
com.Parameters.Add(p2);
com.ExecuteNonQuery();

删:

/*
下面这句从激行者表t1中删除明薯name为@a的行,带汪指定@a参数的值为textBox1中输入的值
*/
string sql = " delete from t1 where name = @a";

OleDbParameter p1 = new OleDbParameter("@a", textBox1.Text);
OleDbCommand com = new OleDbCommand(sql, con);
com.Parameters.Add(p1);
com.ExecuteNonQuery();

改:
/*
将表t1中的name列为@b的行的 pwd列值更新为@a的值
*/
string sql = " update t1 set pwd = @a where name = @b";

OleDbParameter p1 = new OleDbParameter("@a", textBox1.Text); OleDbParameter p2 = new OleDbParameter("@b", textBox2.Text); OleDbCommand com = new OleDbCommand(sql, ole); com.Parameters.Add(p1);
com.Parameters.Add(p2);
com.ExecuteNonQuery();

查:
/*
从t2表中查找Name为@a值,Pwd为@b值的记录,
*/
string sql = "select * from t2 where Name=@a and Pwd=@b";

OleDbParameter p1 = new OleDbParameter("@a", textBox1.Text);
OleDbParameter p2 = new OleDbParameter("@b", textBox2.Text);
OleDbCommand com = new OleDbCommand(sql, con);

com.Parameters.Add(p1);
com.Parameters.Add(p2);
OleDbDataReader dr = com.ExecuteReader();// 与前三者不同

/*
记录存在,用户已注册过,可以登录。
*/
if (dr.Read())
MessageBox.Show("登录通过!");
}

看看MSDN类库吧:http://msdn.microsoft.com/zh-cn/library/system.data.oledb.oledbparameter.aspx
乁Freedom
2009-07-31 · TA获得超过2128个赞
知道小有建树答主
回答量:1580
采纳率:0%
帮助的人:1411万
展开全部
db1.mdb是库名,mdb的后缀应该是ACCESS的数据库吧,而不是SQL 2005的
a和b是要插入到数据库里的数据,没看到你说的SP1,SP2,没仔细看。

数据库操作:
一般用到ExecuteNonQuery() ExecuteQuery()这两个方法,都是SqlCommand类里,这两个都是执行单条SQL语句的,前者执行无返回数据,如果要返回只是返回影响的行数,比如你删除了轿闭仿两条记录,他就返回2,也可以不接收他返回的数据,后者态并ExecuteQuery()是有返回,一般是用在select语句,而ExecuteNonQuery()是用在inert update delete这三个

无论闭纤是增,删,改 他们都只需要一个方法而已,不用一种就要写一次,你可以定义个方法,然后传SQL语句过去就可以了
public bool DataOper(string sqlString)
{
///使用using是为了防止忘记关闭连接
using(SqlConnection conn = 连接数据库字符串)
{
conn.Open();
SqlCommand cmd = new SqlCommand(sqlString,conn);
try
{
cmd.ExecuteNonQuery();
return true;
}
catch(SqlException e)
{
MessageBox.Show(e.ToString());
return false;
}
finally
{
conn.Close();
}
}

有时需要执行的数据是一张表的,这时候应该用SqlDateAdatper.Fill()慢慢来
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skyftdidi
2009-07-31 · TA获得超过115个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:139万
展开全部
介绍你看看微软发布的“SqlHelper.cs”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式