大哥大姐, 小弟初学ASP.net (C#)请教几个数据库insert,update,delete,query操作问题,分不够再开
大哥大姐, 小弟初学ASP.net (C#)
请教几个数据库insert,update,delete,query操作问题,分不够再开
我想得到不用控件连接数据库的方法, 目前我只学会了连接SQL Server 的查询写法如下
private void Button1_Click(object sender, System.EventArgs e)
{
String sql;
string connstr=@"Provider=SQLOLEDB.1;Password=IEB;Persist Security Info=True;User ID=IEB;Initial Catalog=IEB1222;Data Source=ZESHI\NJAIEB01Provider=SQLOLEDB.1;Password=IEB;Persist Security Info=True;User ID=IEB;Initial Catalog=IEB1222;Data Source=ZESHI\NJAIEB01"; // 定义连接字符串
System.Data.OleDb.OleDbConnection conn =new System.Data.OleDb.OleDbConnection(connstr);
// 把连接的内容赋给 oledbConnection
conn.Open();
// 打开数据库
sql="select * from test";
System.Data.OleDb.OleDbDataAdapter ada =new System.Data.OleDb.OleDbDataAdapter(sql,conn);
// 定义 OleDbDataAdapter, 一个 OledbDataAdapter 对应一个dataTable
System.Data.DataSet ds =new DataSet();
// 定义 DataSet ds, DataSet 是DataTable 的集合.
ada.Fill(ds);
// 把OledbDataAdapter 读出来的DataTable 填充到 DataSet 里面.
this.DataGrid1.DataSource=ds.Tables[0];
this.DataGrid1.DataBind();
}
我想请教 insert , Update , Delete 数据库操作如何写. 请用语句连接SQL Server 数据库.
Table 结构如下:
Prodid, qty
ASP.net 界面上有两个文本框控件, TextBox1 用来输入 prodid, TextBox2 用来输入 qty.谢谢各位大哥大姐拉
问题点数:100、回复次数:16Top
1 楼lr2651(戎 The Two Towers)回复于 2004-12-02 10:00:10 得分 5
要这么简单的张表,sql语句都不用自己写,直接声明一个CommandBiulder就搞定了Top
2 楼KingCrane(子鹤)回复于 2004-12-02 10:03:36 得分 10
System.Data.OleDb.OleDbCommand cmd;
cmd = new System.Data.OleDb.OleDbCommand();
cmd.Connection = conn // connetion;
cmd.CommandText = sql// insert update delete sql;
cmd.ExecuteNonQuery();
Top
3 楼lr2651(戎 The Two Towers)回复于 2004-12-02 10:04:06 得分 10
插入:
if(Page.IsValid)
{
DataTable table = myDS.Tables["ServiceCenter"];
DataRow row = table.NewRow();
row["title"] = this.TextTitle.Text;
row["surporter"] = this.TextName.Text;
if(this.Email.Text != string.Empty)
{
row["email"] = this.Email.Text;
}
if(this.PhoneNumber.Text != string.Empty)
{
row["phone"] = this.PhoneNumber.Text;
}
if(this.TelNumber.Text != string.Empty)
{
row["powerPhone"] = this.TelNumber.Text;
}
if(this.OrderNum.Text != string.Empty)
{
row["orderNum"] = this.OrderNum.Text;
}
table.Rows.Add(row);
myAdapter.Update(table);
Response.Redirect("M_suport.aspx");
}
删除:
if(myDS.Tables["serviceCenter"].Rows[e.Item.DataSetIndex] != null)
{
myDS.Tables["serviceCenter"].Rows[e.Item.DataSetIndex].Delete();
myDS.GetChanges();
}
if(myDS.HasChanges())
{
myAdapter.Update(myDS,"serviceCenter");
}
Response.Redirect("M_suport.aspx");
修改:
if(Page.IsValid)
{
DataRow editRow = myDS.Tables["serviceCenter"].Rows[ListView.SelectedIndex];
editRow["title"] = EditTitle.Text;
editRow["surporter"] = EditSurporter.Text;
if(EditPhone.Text != string.Empty)
editRow["phone"] = EditPhone.Text;
if(EditPowerPhone.Text != string.Empty)
editRow["powerPhone"] = EditPowerPhone.Text;
if(EditEmail.Text != string.Empty)
editRow["email"] = EditEmail.Text;
if(EditOrderNumber.Text != string.Empty)
editRow["orderNum"] = EditOrderNumber.Text;
myAdapter.Update(myDS,"serviceCenter");
this.childPart.Visible = false;
Response.Redirect("M_suport.aspx");
}
注意,页面一开始需要
myCommB = new OleDbCommandBuilder(myAdapter);
这句把你的适配器与CommandBuilder关联起来Top
4 楼jackief(小鱼儿)回复于 2004-12-02 10:04:34 得分 10
给你一些我写的代码,你研究研究吧!
这是邦定数据库的
string strSql;
SqlConnection Conn=new SqlConnection();
Conn.ConnectionString="server=fl;uid=sa;pwd=;database=pubs";
Conn.Open();
if(txtKey.Text=="")
strSql="select * from jobs";
else
strSql="select * from jobs where job_desc like '%"+txtKey.Text.Trim()+"%'";
SqlDataAdapter Cmd=new SqlDataAdapter(strSql,Conn);
DataSet ds=new DataSet();
Cmd.Fill(ds,"jobs");
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
Conn.Close();
你要只是想执行sql语句,那么就这样写
public void ExecuteSql(string strSql){
SqlConnection Conn=new SqlConnection();
Conn.ConnectionString ="server=fl;uid=sa;pwd=;database=practice";
Conn.Open();
SqlCommand comm=new SqlCommand(strSql,Conn);
comm.ExecuteNonQuery();
Conn.Close();
}
写成函数然后传参数,就可以执行sql语句了
另外,如果你想用textbox1来输出值,用上面的ds
textbox1.Text=ds.Table["表名"].rows[行数][列数].tostring();Top
5 楼dcren118(酒仙)回复于 2004-12-02 10:24:47 得分 5
数据更新用DATAREADER就就可以了!
然后用dr.Getstring(0).Tostring();输出你的结果
最主要的就SQLCOMMAND 执行他副给 DRTop
6 楼yuejie6666(我爱.NET)回复于 2004-12-02 10:38:56 得分 5
最好是封装在一个对象中,以后直接调用就ok了。Top
7 楼lhcoolhacker(hugh-lin)回复于 2004-12-02 12:03:10 得分 5
可以使用微软的SqlHepler.dll
Top
8 楼yichuan1982(亦川——四川新津)回复于 2004-12-02 12:38:52 得分 5
顶Top
9 楼hwmok()回复于 2004-12-02 16:26:56 得分 20
string dbPath = @"Data\dbTest.mdb";
string db = Server.MapPath(dbPath);
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + db;
string strSQL = "SELECT [CustomerID],[Address] FROM [Customers]";
OleDbConnection conn = new OleDbConnection(connectionString);
OleDbDataAdapter da = new OleDbDataAdapter(strSQL,conn);
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds,"List");
//记录的更新
// DataRow dr = ds.Tables["List"].Rows[1];
//
// dr.BeginEdit();
// dr["CustomerID"] = "********";
// dr["Address"] = "------";
// dr.EndEdit();
//记录更新也可写成这样!
// ds.Tables["List"].Rows[1].BeginEdit();
// ds.Tables["List"].Rows[1]["CustomerID"] = "+++++";
// ds.Tables["List"].Rows[1]["Address"] = "------";
// ds.Tables["List"].Rows[1].EndEdit();
//记录的插入
// DataRow dr = ds.Tables["List"].NewRow();
// dr["CustomerID"] = "1242354554656";
// dr["Address"] = "mmnnvbc";
//
// ds.Tables["List"].Rows.Add(dr);
//记录删除
// ds.Tables["List"].Rows[2].Delete();
//更新到数据库
da.Update(ds,"List");
DataGrid1.DataSource = ds.Tables["List"].DefaultView;
DataGrid1.DataBind();
ds.Clear();
conn.Close();Top
10 楼fccvip(www.anagenesis.cn)回复于 2004-12-02 16:44:55 得分 5
string sql="select * from Table";
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
DataSet ds=new DataSet();
da.Fill(ds,"TableName");
TextBox1.Text=ds.Tables[0].Rows[0]["ID"].ToString();
ds.Clear();Top
11 楼cjjll(潇潇风雨)回复于 2004-12-02 17:52:23 得分 2
混个脸熟!Top
12 楼bitm(爱思派)回复于 2004-12-02 17:55:43 得分 2
去看看SQLTop
13 楼wssmax(请叫我三角猫)回复于 2004-12-02 18:15:45 得分 2
存储过程Top
14 楼hfy2003(凌云(骑猪追老虎))回复于 2004-12-02 19:11:49 得分 0
我用了如下的方法,请大家给个评价吧 !
string sql;
string strconn=@"Provider=SQLOLEDB.1;Password=IEB;Persist Security Info=True;User ID=IEB;Initial Catalog=IEB1222;Data Source=ZESHI\NJAIEB01Provider=SQLOLEDB.1;Password=IEB;Persist Security Info=True;User ID=IEB;Initial Catalog=IEB1222;Data Source=ZESHI\NJAIEB01"; // 定義連接字串
OleDbConnection myconn=new OleDbConnection(strconn);
sql=" insert into test(prodid,qty) values ('123','456')";
myconn.Open();
OleDbCommand mycommand =new OleDbCommand(sql,myconn);
OleDbDataReader myOleDbReader =mycommand.ExecuteReader();
DataGrid1.DataSource=myOleDbReader;
DataGrid1.DataBind();
Top
15 楼passionke(每一步都改变未来,却只能有一种结局!)回复于 2004-12-02 20:11:38 得分 2
up~Top
16 楼bgu(彼岸)回复于 2004-12-02 20:24:57 得分 12
Select:
很简单,用DataReader读出来再梆定到DataGrid就可以了.
Insert/Delete:
直接用Command就可以了.
Top




