日期:2014-05-20  浏览次数:20505 次

大家节日快乐!有一个初级数据库操作问题
刚从asp转到asp.net(c#)上,所以有些数据库操作不太熟悉!
现有一个程序,要求访问者检测IP达到上限100,就不能在进行访问了!
用asp很好实现,数据库   ip_table
ip= "192.168.0.1 "
sql= "select   *   from   ip_talbe   where   ip= ' "&ip& " '   "
set   m_rs   =   server.CreateObject   ( "Adodb.recordset ")
m_rs.open   sql,conn,3,3
if   not   m_rs.eof   then
    if   m_rs( "ip_num ")> 100   then  
          response.end
    else
        m_rs( "ip_num ")=m_rs( "ip_num ")+1
    end   if
    m_rs.update
else
    m_rs.addnew
    m_rs( "ip_num ")=1
    m_rs.update
end   if
set   m_rs=nothing
=====
这段代码用c#如何实现呢,我现在只懂简单的C#语法和数据库查询操作
但是有查询和更新还有添加记录就不知怎么办了,谢谢大家给我一个代码学习一下!

再祝大家2007年工作愉快

------解决方案--------------------
先看好基础知识才自己写法,别人写完了对你帮助不大. 给你一个示例: SqlConnection conn =null; SqlDataAdapter dapt = null; DataSet ds = new DataSet(); string strConnectionString = "Data Source=.;initial catalog=数据库;uid=sa;pwd=xxx "; string strSQL = "SELECT 字段 from 表 " try { conn = new SqlConnection(strConnectionString); conn.Open(); dapt = new SqlDataAdapter(strSQL,conn); dapt.Fill(ds, "table1 "); DataTable dt = ds.Tabls[0]; if(dt.Rows.Count > 0) { this.Text1.Text = dt.Rows[0][ "字段 "].ToString(); } } catch(System.Exception e) { this.Text1.Text = "错误 "+e.Message; } finally { if(conn!=null) conn.Dispose(); if(dapt!=null) dapt.Dispose(); }
------解决方案--------------------
节日快乐
------解决方案--------------------

给你发一个更新的例子吧


//构造DataTable
DataTable dt=new DataTable( "demo ");
dt.Columns.Add( "pkid ",typeof(System.Int32)).Caption= "序号 ";
dt.Columns.Add( "user_name ", typeof(System.String)).Caption= "用户名 ";
dt.Columns.Add( "passwd ",typeof(System.String)).Caption= "密码 ";

//填充DataTable
DataRow dr=dt.NewRow();
dr[ "pkid "]=0;
dr[ "user_name "]=this.txtName.Text;
dr[ "passwd "]=this.txtPasswd.Text;
dt.Rows.Add(dr);

//构造DataSet
DataSet ds=new DataSet();
//填充DataSet
ds.Tables.Add(dt);

string strConn= "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=myweb;user id=sa; ";
try
{
OleDbConnection conn = new OleDbConnection(strConn);

//参数在OleDbCommand或ODBCCommand中用?,SqlCommand中用@开头的参数,OracleCommand中的用:开头的参数
OleDbCommand comm=new OleDbCommand(@ "insert into demo(user_name,passwd) values(?,?) ",conn);
comm.Parameters.Add( "@user_name ",OleDbType.VarChar,50, "user_name ");
comm.Parameters.Add( "@passwd ",OleDbType.VarChar,50, "passwd ");

OleDbDataAdapter da = new OleDbDataAdapter();
//DataAdapter中的DataTable与数据库中的表建立映射
da.TableMappings.Add( "demo ", "demo ");