25岁不知道做什么工作:一个C#(asp.net 问题)

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 17:08:26
你好,我想请教您个问题,我的分少,发到网上没有回答我,所以麻烦您指点一下:
我把山湖虫的QQIP库导入了Access数据库中,格式是:
startip(字符) endip(字符) province(字符)
192.168.0.1 255.255.255.0 局域网
127.0.0.1 127.0.0.1 个人电脑
.............(下面还有好多数据)
类试这样的,我想把里面的ip地址都转换成192168000001形式的,这样我好做比较IP来查询province字段,转换完的形式是:
startip(字符) endip(字符) province(字符)
192168000001 255255255000 局域网
127000000001 127000000001 个人电脑
以下是我写的代码:
internal string IP2string (string ip)
{
string[] strs = ip.Split('.');
System.Text.StringBuilder builder = new System.Text.StringBuilder();
foreach( string s in strs )
{
int num = Int32.Parse(s);
builder.Append(num.ToString("000"));
}
return builder.ToString();
}

private void Button1_Click(object sender, System.EventArgs e)
{
OleDbConnection con=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("db1.mdb"));
con.Open();
OleDbCommand cmd=new OleDbCommand("select * from ip",con);
OleDbDataReader oddr=cmd.ExecuteReader();
oddr.Read();
string endip=this.IP2string(Convert.ToString((oddr["startup"])));
oddr.Close();

cmd=new OleDbCommand("update ip set startup="+endip,con);
cmd.ExecuteNonQuery();
}
可是我运行的时候,把数据库里的所有ednit字段数据都改成了根第一条记录一样的数据了(255255255000)

"update ip set startup="+endip
是把表里的ip字段全都改成endip
如果只改一条,加上where条件
如果改多条,值不同,使用循环