我建了一个表,表名为profile,面有id,name,age,telephone,email,img几个字段,在ASP。Net页面里有Textbox控件,ID分别为T1,T2......T6,我想用这几个控件更新数据库的这个biao,怎么使用存储过程来更新数据库。最好给出代码。多谢了
  还有一个问题,为什么在数据库里有存储过程,在C#里也有存储过程,他们之间有什么关系。
  如何在SQLSERVER数据库中执行一段SQL代码之后生成数据库和表里的字段。我建表是直接做的没用过SQL语句。
请各位指教,多谢了

解决方案 »

  1.   

    public int J_Query(string aProcedureName,string[] aPara,string[] aValue)
    {
      try
       {
             SqlParameter ParmReturnValue=new SqlParameter();
             _cmd=new SqlCommand(aProcedureName,this._conn);
    _cmd.CommandType=CommandType.StoredProcedure;
    ParmReturnValue=this._cmd.Parameters.Add("ReturnValue",SqlDbType.Int);
    ParmReturnValue.Direction=ParameterDirection.ReturnValue; for(int i=0;i<aPara.Length;i++)
    {
    _cmd.Parameters.Add(aPara[i].ToString(),aValue[i]);
    }
    _cmd.ExecuteNonQuery();
    return Convert.ToInt32(_cmd.Parameters["ReturnValue"].Value);
    }
    catch(Exception ex)
    {
    throw ex;
    }
    }调用更新
    public int USER_UPDATE(string a1,string a2,string a3,...,string an)
    {
      try
          {

    connectDb();//打开数据库
    string[] aPara=new string[n];
    aPara[0]="@a1";
    aPara[1]="@a2";
    aPara[2]="@a3";
             ...... string[] aValue=new string[n];
    aValue[0]=a1;
    aValue[1]=a2;
    aValue[2]=a3;
             ...... int i=_J_Query("存储过程名",aPara,aValue);
    closeDb();//关闭数据库
    return i;
    }
    catch(Exception ex)
    {
    throw ex;
    }
    }
      

  2.   

    CREATE TABLE [tblUserCode] (
    [fldUserID] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [fldUserName] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [fldPassword] [nvarchar] (40) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [fldEntID] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [fldDepartSID] [int] NULL ,
    [fldSetUserID] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [fldUpdateTime] [datetime] NOT NULL ,
    [fldLastLoginTime] [datetime] NULL ,
    [fldLastIP] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [fldAcceRights] [varchar] (4000) COLLATE Chinese_PRC_CI_AS NULL ,
    [fldIsVilid] [nvarchar] (1) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_tblUserCode_fldIsVilid] DEFAULT (N'Y'),
    CONSTRAINT [PK_tblUserCode] PRIMARY KEY  CLUSTERED 
    (
    [fldUserID]
    ) WITH  FILLFACTOR = 90  ON [PRIMARY] 
    ) ON [PRIMARY]
    GO
      

  3.   

    参考http://chs.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/aspplus/samples/webforms/data/datagrid6.src
      

  4.   

    例子Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
            Dim strFromEntID As String
            Dim strUserID As String
            strUserID = Session.Item("_UserID").ToString
            strFromEntID = Session.Item("_FromEntID").ToString        Dim SerialID As Int32
            Select Case SaveType
                Case "Add"  '新增                    
                    SerialID = -1
                Case "Edit" '查看修改
                    SerialID = CType(txtSerialID.Text, Int32)
            End Select        Dim DepartID As String = txtDepartID.Text.Trim
            Dim DepartName As String = txtDepartName.Text.Trim        Dim sql As New SqlDataProvider
            Dim sqlConn As SqlConnection = sql.SqlConn
            Dim myTrans As SqlTransaction
            myTrans = sqlConn.BeginTransaction
            Try
                Dim myCommand As New SqlCommand(".Ent_DepartSave", sqlConn)
                myCommand.CommandType = CommandType.StoredProcedure
                myCommand.Transaction = myTrans
                myCommand.Parameters.Clear()
                myCommand.Parameters.Add("@SaveType", SqlDbType.NVarChar, 10).Value = SaveType
                myCommand.Parameters.Add("@SerialID", SqlDbType.Int).Value = SerialID
                myCommand.Parameters.Add("@DepartID", SqlDbType.NVarChar, 10).Value = DepartID
                myCommand.Parameters.Add("@DepartName", SqlDbType.NVarChar, 50).Value = DepartName
                Select Case SaveType
                    Case "Add"  '新增
                        myCommand.Parameters.Add("@ParentID", SqlDbType.Int).Value = ParentID
                    Case "Edit" '查看修改
                        myCommand.Parameters.Add("@ParentID", SqlDbType.Int).Value = -1
                    Case Else
                End Select
                myCommand.Parameters.Add("@EntID", SqlDbType.NVarChar, 10).Value = EntID
                myCommand.Parameters.Add("@UserID", SqlDbType.NVarChar, 10).Value = strUserID
                myCommand.Parameters.Add("@ErrNum", SqlDbType.Int).Value = 0
                myCommand.Parameters("@ErrNum").Direction = ParameterDirection.Output
                myCommand.Parameters.Add("@ErrMsg", SqlDbType.NVarChar, 100).Value = ""
                myCommand.Parameters("@ErrMsg").Direction = ParameterDirection.Output            myCommand.ExecuteNonQuery()            If myCommand.Parameters("@ErrNum").Value = 0 Then
                    myTrans.Commit()                Response.Write("<script>alert('保存成功!')</script>")
                    Response.Write("<script>location.href='DepartManage.aspx '</script>")
                Else
                    Throw New Exception(myCommand.Parameters("@ErrMsg").Value)
                End If        Catch ex As Exception
                Response.Write("<FONT face='宋体' color='red'>" & ex.Message & "</Font>")
                myTrans.Rollback()
            Finally
                sqlConn.Close()
            End Try
        End Sub
    End Class
      

  5.   

    你需要学学sqlserver的基本知识
      

  6.   

    ALTER PROCEDURE dbo.Ent_DepartSave
    (
    @SaveType varchar(10),/*  @SaveType  'Add' or  'Edit'*/
    @SerialID int,
    @DepartID nvarchar(10),
    @DepartName nvarchar(50),
    @ParentID int,
    @EntID nvarchar(10)='',
    @UserID nvarchar(10),
    @ErrNum  int output,
    @ErrMsg  nvarchar(100) output
    )AS
      
    declare @ParLevel int
    /* SET NOCOUNT ON */

    if @SaveType='Add'
    Begin
    /*检查ParentID是否存在*/
    if @ParentID<>-1 and not exists(Select Top 1 fldSerialID From tblDepartCode Where fldSerialID=@ParentID )
    begin
    set @ErrNum=1
    set @ErrMsg='父节点'+ convert(varchar(10),@ParentID) +'不存在!'
    end
    else
    begin
    /*保存*/
    if @ParentID<>-1
    Select Top 1 @EntID=fldEntID, @ParLevel=fldLevel From tblDepartCode Where fldSerialID=@ParentID
    else
    Select @EntID=@EntID, @ParLevel=-1,@ParentID=Null


    Insert Into tblDepartCode (fldDepartID,fldDepartName,fldEntID,
    fldLevel,fldParentID,fldUserID,fldUpdateTime) 
    Values
    (@DepartID,@DepartName,@EntID,@ParLevel+1,@ParentID,@UserID,GetDate())

    set @ErrNum=0
    end
    end

    else 

    if @SaveType = 'Edit'
    /*检查SerialID是否存在*/
    if not exists(Select Top 1 fldSerialID From tblDepartCode Where fldSerialID=@SerialID )
    begin
    set @ErrNum=11
    set @ErrMsg='记录'+ convert(varchar(10),@SerialID) +'不存在!'
    end
    else
    begin
    /*保存*/
    Update tblDepartCode Set fldDepartID=@DepartID,fldDepartName=@DepartName,
    fldUserID=@UserID,fldUpdateTime=Getdate()
    Where fldSerialID=@SerialID 

    set @ErrNum=0
    end else
    begin
    set @ErrNum=99
    set @ErrMsg='参数错误!'
    end 

    RETURN 
      

  7.   

    各位,存储过程写好了,如何在.NET(C#)程序中调用它呢???