using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace user
{
/// <summary>
/// rework 的摘要说明。
/// </summary>
public class rework : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox tqyyw;
protected System.Web.UI.WebControls.TextBox tqydz;
protected System.Web.UI.WebControls.TextBox tqydh;
protected System.Web.UI.WebControls.TextBox tqycz;
protected System.Web.UI.WebControls.TextBox tyb;
protected System.Web.UI.WebControls.TextBox tmail;
protected System.Web.UI.WebControls.TextBox tqyzp;
protected System.Web.UI.WebControls.TextBox tqyurl;
protected System.Web.UI.WebControls.TextBox tsj;
protected System.Web.UI.WebControls.TextBox tqyjj;
protected ClassConn clconn;
protected System.Web.UI.WebControls.TextBox tqyname;
protected System.Web.UI.WebControls.Button Button1;

public SqlConnection conn;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
string sql="select * from pds.corp";
string strconn="server=(local);uid=pds;password=;database=pdssme";
conn=new SqlConnection(strconn);
conn.Open();
DataSet ds=new DataSet();
SqlDataAdapter rs=new SqlDataAdapter(sql,conn);
rs.Fill(ds);
tqyname.Text=Convert.ToString(ds.Tables[0].Rows[0]["corp_name"]);
tqyyw.Text=Convert.ToString(ds.Tables[0].Rows[0]["main_business"]);
tqydz.Text=Convert.ToString(ds.Tables[0].Rows[0]["corp_addr"]);
tqydh.Text=Convert.ToString(ds.Tables[0].Rows[0]["corp_phone"]);
tqycz.Text=Convert.ToString(ds.Tables[0].Rows[0]["fax"]);
tyb.Text=Convert.ToString(ds.Tables[0].Rows[0]["post_code"]);
tmail.Text=Convert.ToString(ds.Tables[0].Rows[0]["corp_email"]);
tqyzp.Text=Convert.ToString(ds.Tables[0].Rows[0]["corp_picture"]);
tqyurl.Text=Convert.ToString(ds.Tables[0].Rows[0]["website"]);
tsj.Text=Convert.ToString(ds.Tables[0].Rows[0]["fee_phone"]);
tqyjj.Text=Convert.ToString(ds.Tables[0].Rows[0]["brief"]);
conn.Close(); }
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
string strconn="server=(local);uid=pds;password=;database=pdssme";
conn=new SqlConnection(strconn);
conn.Open();
string sql,exec;
int id;
sql="select * from pds.corp";
DataSet ds=new DataSet();
SqlDataAdapter rs=new SqlDataAdapter(sql,conn);
rs.Fill(ds);
id=Convert.ToInt32(ds.Tables[0].Rows[0]["corp_id"]);
exec="update pds.corp set corp_name='"+tqyname.Text+"',main_business='"+tqyyw.Text+"',corp_addr='"+tqydz.Text+"',corp_phone='"+tqydh.Text+"',fax='"+tqycz.Text+"',post_code='"+tyb.Text+",corp_email='"+tmail+"',corp_picture='"+tqyzp.Text+"',website='"+tqyurl.Text+"',brief='"+tqyjj.Text+"'corp_id="+id+"";
SqlCommand cmd=new SqlCommand(exec,conn);
cmd.ExecuteNonQuery();
conn.Close();
Response.Write("<script language='javascript'>alert('更新成功!')</script>");
}
}
}

解决方案 »

  1.   

    总是又这样的错误提示: 'System' 附近有语法错误。字符串 'corp_id=1000' 之前有未闭合的引号。
    我是想对一个表中的某些字段进行更新.
    我总觉得这个程序我写的很罗嗦.那里可以简化一下?怎么简化呀?
    刚学ASP.NET不久请各位帮帮忙.
      

  2.   

    brief='"+tqyjj.Text+"'corp_id="+id+""这里要加一个,号吧
    brief='"+tqyjj.Text+"',corp_id="+id+""
      

  3.   

    +tyb.Text+"  这后面少了个 ' 吧
    还有最后的corp_id="+id+"";  是 corp_id='" + id + "'";
      

  4.   

    那当然了:exec="update pds.corp set 
    corp_name='"+tqyname.Text+"',
    main_business='"+tqyyw.Text+"',
    corp_addr='"+tqydz.Text+"',
    corp_phone='"+tqydh.Text+"',
    fax='"+tqycz.Text+"',
    post_code='"+tyb.Text+",
    corp_email='"+tmail+"',
    corp_picture='"+tqyzp.Text+"',
    website='"+tqyurl.Text+"',
    brief='"+tqyjj.Text+"'
    corp_id="+id+"";把post_code='"+tyb.Text+",
    改为post_code='"+tyb.Text+"',
    还有brief='"+tqyjj.Text+"'
    改为brief='"+tqyjj.Text+"',
      

  5.   

    asp.net经常要与数据库打交道,建议建立一个class,把查询更新操作写成方法,下次直接传入sql语句或存储过程调用即可。
    连接数据库信息可以写在web.confing中,以免修改麻烦
      

  6.   

    给个经理例子吧 比如说web.config中 怎么写 最好是ACCESS和SQL这两个数据库的都写一下.让想我这样的初学者都学习学习.新建的类中最长用的要定义那些.
      

  7.   

    web.config
      <appSettings>
            <add key="SqlStrConnection" value="server=shm;database=jxda;uid=sa;pwd=123456;" />
            <add key="OracleStrConnection" value="User ID = system ;Password = manager ;Data Source= hisdd " />
      </appSettings>
    ////////////////////////////////////////// #region GetSqlConnectionString
    /// <summary>
    /// 返回连接SQLServer数据库的连接字符串
    /// </summary>
    /// <returns></returns>
    public static string GetSqlConnectionString()
    {
    string strConnection="";
    strConnection=System.Configuration.ConfigurationSettings.AppSettings["SqlStrConnection"].ToString();
    return strConnection;
    }
    #endregion GetSqlConnectionString/////////////////////////////////////
    protected string strconn = ConnectionString.GetSqlConnectionString();
    #region ExecuteDatasetSp2
    /// <summary>
    /// 执行存储过程,返回一个DataSet
    /// </summary>
    /// <param name="storeProcedureName">存储过程名称</param>
    /// <param name="inParameterName">入参名称</param>
    /// <param name="inParameter">入参值</param>
    /// <returns>DataSet</returns>
    public DataSet ExecuteDatasetSp2(string storeProcedureName,string[] inParameterName,string[] inParameter)
    {
    //创建DataSet
    DataSet ds = new DataSet (); //定义一个Command对象
    SqlCommand cmd = new SqlCommand(); //导入连接数据库参数,准备执行command
    using (SqlConnection cn= new SqlConnection (strconn))
    {

    cn.Open ();
    try
    {
    try
    {
    //连接数据库
    cmd.Connection=cn; //设置command text 为存储过程名称
    cmd.CommandText=storeProcedureName; //设置command type
    cmd.CommandType=CommandType.StoredProcedure;
    //定义入参
    for ( int i = 0; i< inParameter.Length ;i++)
    {
    SqlParameter p = new SqlParameter((string)inParameterName[i],SqlDbType.Text,100000);
    p.Direction=System.Data.ParameterDirection.Input;
    p.Value = (string)inParameter[i];
    cmd.Parameters.Add(p);
    }

    //创建 DataAdapter 
    SqlDataAdapter da = new SqlDataAdapter(cmd); //填充 DataSet 对于DataTable名称使用缺省值
    da.Fill(ds); //从command对象中清除SqlParmeters,这样他们能够被再次使用
    cmd.Parameters.Clear(); //释放资源
    cmd.Dispose();
    }
    catch
    {
    cmd.Dispose();
    } //断开数据库连接,释放资源
    cn.Close();
    cn.Dispose();
    }
    catch
    {
    cn.Close();
    cn.Dispose();
    }
    return ds;
    } } #endregion ExecuteDatasetSp2 #region ExecuteDatasetTxt
    /// <summary>
    /// 执行一段SQL语句(主要用于查询),返回一个DataSet
    /// </summary>
    /// <param name="commandText">一个可执行的SQL语句</param>
    /// <returns>DataSet</returns>
    public DataSet ExecuteDatasetTxt(string commandText)
    {
    //定义一个command对象
    SqlCommand cmd = new SqlCommand();
    //导入连接数据库参数,准备执行command
    using (SqlConnection cn=new SqlConnection(strconn))
    { //创建一个DataSet
    DataSet ds = new DataSet(); cn.Open();

    try
    {
    try
    {
    //连接数据库
    cmd.Connection = cn;

    //设置command text 为SQL语句
    cmd.CommandText = commandText;

    //设置command type
    cmd.CommandType = CommandType.Text; //创建 DataAdapter 
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    //填充 DataSet 对于DataTable名称使用缺省值
    da.Fill(ds);

    //从command对象中清除SqlParmeters,这样他们能够被再次使用
    cmd.Parameters.Clear(); //释放资源
    cmd.Dispose();
    }
    catch
    {
    cmd.Dispose();
    } //断开数据库连接,释放占有的资源
    cn.Close();
    cn.Dispose();
    }
    catch
    {
    cn.Close();
    cn.Dispose();
    }

    //返回 dataset
    return ds;
    }
    } #endregion ExecuteDatasetTxt
      

  8.   

    倒,本机sql和oracle密码不小心泄漏了
      

  9.   

    谢了,好详细的流程!  -->>  98star(~瞬间的流星也是美的!)