问题如下:先通过存储过程调用数据库中的数据到相对应的文本框中,然后重新调用另一个存储过程对文本框中的数据(已做修改的)进行update操作,程序运行正常,没有报错,但实际并没有进行更新,实在找不到哪里出错,请各位前辈出手帮忙,感谢先.存储过程如下(运行正常):/*
作者:dezai
用途:用于编辑修改企业的资料
日期:2006-3-2
*/CREATE procedure com_update@com_id bigint,
@Com_Name char(150),
@Com_Url char(150),
@Com_Type char(150),
@Com_Address char(150),
@Com_City char(50),
@Com_Zipcode char(50),
@Com_Province char(50),
@Com_Phone_Country char(30),
@Com_Phone_Area char(30),
@Com_Phone_Tel char(30),
@Com_Fax_Country char(30),
@Com_Fax_Area char(30),
@Com_Fax_Fax char(30),
@Com_Mobile char(30),
@Com_KeyProduct1 char(30),
@Com_KeyProduct2 char(30),
@Com_KeyProduct3 char(30),
@Com_MainMarket char(50),
@Com_OtherMarket char(50),
@Com_NumberEmployee char(30),
@Com_CEO char(50),
@Com_AnnualSale char(50),
@Com_BuildYear int,
@Com_Cert char(200),
@Com_intro char(4000),
@user__Id bigint
asupdate [company]set@com_name=Com_Name ,
@com_url=Com_Url ,
@com_type=Com_Type ,
@com_address=Com_Address ,
@com_city=Com_City,
@com_zipcode=Com_Zipcode,
@com_province=Com_Province,
@com_phone_country=Com_Phone_Country ,
@com_phone_area=Com_Phone_Area,
@Com_Phone_Tel=com_phone_tel,
@Com_Fax_Country=com_fax_country,
@Com_Fax_Area=com_fax_area,
@com_fax_fax=Com_Fax_Fax,
@com_mobile=Com_Mobile,
@Com_KeyProduct1=com_keyproduct1 ,
@Com_KeyProduct2=com_keyproduct2 ,
@Com_KeyProduct3=com_keyproduct3 ,
@Com_MainMarket=com_mainet ,
@Com_OtherMarket=com_otheret ,
@Com_NumberEmployee=com_numberemployee ,
@Com_CEO=com_ceo ,
@Com_AnnualSale=com_annualsale,
@Com_BuildYear=com_buildyear ,
@Com_Cert=com_Cert ,
@Com_intro=com_introwhere user__id= @user__id and com_id=@com_id
GO这个是正常的,在editcompany这个页面中page_load里面装的是以下码子:主要是用来调用数据到相对应的文本框private void Page_Load(object sender, System.EventArgs e)
{ if(Session["userid"]==null)
{
Response.Redirect("../login.aspx");
Response.End(); }
string userid = Request.QueryString["userid"].Trim();
string comid =  Request.QueryString["comid"].Trim();
SqlConnection conndb= new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); conndb.Open(); SqlCommand Cmdselect = new SqlCommand("usercompany_select",conndb); Cmdselect.CommandType=CommandType.StoredProcedure; Cmdselect.Parameters.Add("@user_Id",userid); SqlDataReader reader = Cmdselect.ExecuteReader(); if(reader.Read())
{
  
TxtComName.Text = reader["Com_Name"].ToString().Trim();
TxtAddress.Text =reader["Com_Address"].ToString().Trim();
TxtCity.Text= reader["Com_City"].ToString().Trim();
TxtZipCode.Text=reader["Com_Zipcode"].ToString().Trim();
TxtWeb.Text = reader["Com_Url"].ToString().Trim();
TxtCeo.Text = reader["Com_Ceo"].ToString().Trim();
TxtCert.Text = reader["Com_Cert"].ToString().Trim();
TxtPhone_Coun.Text = reader["Com_Phone_Country"].ToString().Trim();
TxtPhone_Area.Text = reader["Com_Phone_Area"].ToString().Trim();
TxtPhone_Tel.Text = reader["Com_Phone_Tel"].ToString().Trim();
TxtFax_Coun.Text = reader["Com_Fax_Country"].ToString().Trim();
TxtFax_Area.Text = reader["Com_Fax_Area"].ToString().Trim();
TxtFax_Fax.Text = reader["Com_Fax_Fax"].ToString().Trim();
TxtIntro.Text = reader["Com_intro"].ToString();
} reader.Close();
conndb.Close(); // 在此处放置用户代码以初始化页面
}同时,在提交按钮中的代码如下,主要是用来更新修改的数据的,我一开始以为不能直接用text这属性,就重新定义了几个string的变量,可结果仍是没有更新.
码子如下:private void BtnOk_Click(object sender, System.EventArgs e)
{
if(Page.IsValid)
{

string userid = Request.QueryString["userid"].Trim();
string comid =  Request.QueryString["comid"].Trim(); SqlConnection conndb= new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); conndb.Open(); SqlCommand cmdModify = new SqlCommand("com_update",conndb); cmdModify.CommandType = CommandType.StoredProcedure; string comname;
string weburl;
string address;
string zipcode;
string city;

string province;
string phonecount;
string phonearea;
string phone;
string faxcount;
string faxarea;
string fax;
string prokey1;
string prokey2;
string prokey3;
string otheret;
string intro;
string ceo;
string mobile; comname = TxtComName.Text.Trim();
weburl = TxtWeb.Text.Trim();
address = TxtAddress.Text.Trim();
zipcode = TxtZipCode.Text.Trim();
cmdModify.Parameters.Add("@com_id",comid);
cmdModify.Parameters.Add("@user__id",userid);
cmdModify.Parameters.Add("@Com_Name",comname);
cmdModify.Parameters.Add("@Com_Url",weburl);
cmdModify.Parameters.Add("@Com_Type",DropBusiType.SelectedValue);
cmdModify.Parameters.Add("@Com_Address",TxtAddress.Text.Trim());
cmdModify.Parameters.Add("@Com_City",TxtCity.Text.Trim());
cmdModify.Parameters.Add("@Com_Zipcode",zipcode);
cmdModify.Parameters.Add("@Com_Province",TxtProvince.Text.Trim());
cmdModify.Parameters.Add("@Com_Phone_Country",TxtPhone_Coun.Text.Trim());
cmdModify.Parameters.Add("@Com_Phone_Area",TxtPhone_Area.Text.Trim());
cmdModify.Parameters.Add("@Com_Phone_Tel",TxtPhone_Tel.Text.Trim());
cmdModify.Parameters.Add("@Com_Fax_Country",TxtFax_Coun.Text.Trim());
cmdModify.Parameters.Add("@Com_Fax_Area",TxtFax_Area.Text.Trim());
cmdModify.Parameters.Add("@Com_Fax_Fax",TxtFax_Fax.Text.Trim());
cmdModify.Parameters.Add("@Com_Mobile",TxtMobile.Text.Trim());
cmdModify.Parameters.Add("@Com_KeyProduct1",TxtKey1.Text.Trim());
cmdModify.Parameters.Add("@Com_KeyProduct2",TxtKey2.Text.Trim());
cmdModify.Parameters.Add("@Com_KeyProduct3",TxtKey3.Text.Trim());
cmdModify.Parameters.Add("@Com_MainMarket",DropMainMarkets.SelectedValue);
cmdModify.Parameters.Add("@Com_OtherMarket",TxtOherMarket.Text.Trim());
cmdModify.Parameters.Add("@Com_NumberEmployee",DropNumEmployee.SelectedValue);
cmdModify.Parameters.Add("@Com_CEO",TxtCeo.Text.Trim());
cmdModify.Parameters.Add("@Com_AnnualSale",DropAnnualRange.SelectedValue);
cmdModify.Parameters.Add("@Com_BuildYear",DropYear.SelectedValue);
cmdModify.Parameters.Add("@Com_Cert",TxtCert.Text.Trim());
cmdModify.Parameters.Add("@Com_intro",TxtIntro.Text);
cmdModify.ExecuteNonQuery(); conndb.Close();
Response.Write("<script language='javascript'>alert('Update succesful!');</script>"); Response.Redirect("index.aspx"); } else
{
Response.Write("<script language='javascript'>alert('Error!');</script>"); Response.End();
}
}

}
}请各位兄台出后指点一下,一经解决,马上结分.再次先谢之....

解决方案 »

  1.   

    user__id= @user__id and com_id=@com_id
    是不是没有符合update条件?
      

  2.   

    问题出现在 Page_Load()函数,因为你单击“确定”以后,程序先执行一次 Page_Load(),而你里面有初使化页面。所以你修改的又被还原成数据库中的内容了。所以没有更新。
    解决方法是:
    在Page_Load()中初始化是添加一个判断
    If Not Page.IsPostBack Then
       初始化程序代码
    end if
    我用的是VB语法,你换成C#就可以了。就这个思路。
      

  3.   

    回:lsgis2001(程序爱好者) 
    我一开始也认为是这个问题,我就加了个if(!Page.IspostBack)在page_load这事件里头,可问题仍然是一样的。
      

  4.   

    hi 哥们:存储过程的付值语句写反了。例如:update [company] set @com_name=Com_Name 
    因该写成 
    update [company]
    set Com_Name = @com_name
      

  5.   

    问题解决,果然是aafly(和安飞翔) 所说的错!太粗心了,唉!谢谢!