using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MySql.Data.MySqlClient;
public partial class checkvisible : System.Web.UI.Page
{
protected
void Page_Load(object sender, EventArgs e)
{
int id =
Convert.ToInt32(Request.QueryString["id"].ToString());
String mysqlStr = "Database=mynetsite;Data Source=127.0.0.1;User
Id=root;Password=tjwyNIC;pooling=false;CharSet=gb2312;port=3306";
MySqlConnection mysqlcon = new MySqlConnection(mysqlStr);
String sqlstr = "select * from news where newsid="+id;
MySqlDataAdapter mysqlad = new MySqlDataAdapter(sqlstr,
mysqlcon);
MySqlCommandBuilder sb1 = new MySqlCommandBuilder(mysqlad);
DataSet ds = new DataSet();
mysqlad.Fill(ds, "Table1");
DataRow dr = ds.Tables["Table1"].Rows[0];
if (Convert.ToInt32(dr["newsstate"]) == 0)
{
dr["newsstate"] = 1;
}
else
{
dr["newsstate"] = 0;
}
mysqlad.Update(ds, "Table1");
Response.Redirect("manage.aspx?type=1&pagenum=1");
上述是代码,步骤如下:
1. 下载一个MySql.Data.dll
2. 在项目中 右键项目名称 添加引用 浏览引用该文件
3.using MySql.Data.MySqlClient;
4. sql语句要写对
String mysqlStr = "Database=mynetsite;Data Source=127.0.0.1;User
Id=root;Password=tjwyNIC;pooling=false;CharSet=gb2312;port=3306";
5.其余和其他数据库差不多,也是connection command adapter dataset这些,名字不太一样
下面说说用DataSet更新数据库问题
承接select语句就可以,不用单独写command
只要把得到的DataSet中的表,获取对应行,然后修改对应列的数据,然后再Update就可以
MySqlCommandBuildersb1 = new
MySqlCommandBuilder(mysqlad); 貌似一定要写,虽然sb1不会被直接使用
1.DataRow dr = ds.Tables["Table1"].Rows[0];
先获取对应行数据
2. dr["newsstate"] 再获取对应列
注意 dr["newsstate"] 是个Object对象,所以比较大小什么时要转化
Convert.ToInt32(dr["newsstate"]) == 0
但赋值时却可以直接赋值 dr["newsstate"]
= 1;字符串加双引号
我想是赋值语句本身具备了类型转换的缘故。
3. ds插入新行
DataRow dr = ds.Tables[ "test
"].NewRow(); dr[ "test_id "] = "0 "; dr[ "test_name "] = "测试 "; ds.Tables[ "test "].Rows.InsertAt(dr, 0); 上面是插入,如果是在后面添加,这样 ds.Tables[ "test "].Rows.Add(dr); 删除数据后,要重新绑定数据源