这个应该属于存储过程在.net的使用吧

解决方案 »

  1.   

    this.sqlCommand1.CommandText = "dbo.[MyInsertDeviceInfo]";//存储过程名
    this.sqlCommand1.CommandType = System.Data.CommandType.StoredProcedure;//定义此Command为使用存储过程
    this.sqlCommand1.Connection = this.sqlConnection1;
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DN_1", System.Data.SqlDbType.VarChar, 10));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DName_2", System.Data.SqlDbType.NVarChar, 50));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DSpec_3", System.Data.SqlDbType.NVarChar, 30));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Price_4", System.Data.SqlDbType.Real, 4));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Company_5", System.Data.SqlDbType.VarChar, 50));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FactoryDate_6", System.Data.SqlDbType.DateTime, 8));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FactoryNumber_7", System.Data.SqlDbType.VarChar, 20));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@StartDate_8", System.Data.SqlDbType.DateTime, 8));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DSource_9", System.Data.SqlDbType.NVarChar, 50));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@InDate_10", System.Data.SqlDbType.DateTime, 8));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Re_11", System.Data.SqlDbType.NVarChar, 400));
    this.sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DIDOUTPUT_12", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Output, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));//参数的申明
    //调用过程
    this.sqlCommand1.Parameters["@DN_1"].Value=/*this.LXXZ1.DropDownList1.SelectedValue.ToString()+this.LXXZ1.DropDownList2.SelectedValue.ToString()+*/this.LXXZ1.DropDownList3.SelectedValue.ToString();
    this.sqlCommand1.Parameters["@DName_2"].Value=DName.Text;
    this.sqlCommand1.Parameters["@DSpec_3"].Value=DSpec.Text;
    this.sqlCommand1.Parameters["@Price_4"].Value=float.Parse(this.Price.Text);
    this.sqlCommand1.Parameters["@Company_5"].Value=Company.Text;
    this.sqlCommand1.Parameters["@FactoryDate_6"].Value=FactoryDate.Text;
    this.sqlCommand1.Parameters["@FactoryNumber_7"].Value=FactoryNumber.Text;
    this.sqlCommand1.Parameters["@StartDate_8"].Value=StartDate.Text;
    this.sqlCommand1.Parameters["@DSource_9"].Value=DSource.Text;
    this.sqlCommand1.Parameters["@InDate_10"].Value=InDate.Text;
    this.sqlCommand1.Parameters["@Re_11"].Value=DeviceRe.Text;
    this.sqlCommand1.ExecuteNonQuery();
      

  2.   

    楼上,是在Net的调用存储过程,我主要是想了解如何动态表名称呢?直接调用储存过程也可以输入表名作为参数,以实现动态表名称;
    我主要是要用在DataSet的将数据保存到数据库中,因此,需要设置SqlDataAdapter的InsertCommand,这个如何实现动态?
      

  3.   

    you can do something like
    string strConn = "server=.......";        SqlConnection conn = new SqlConnection(strConn);
     
            string sTableName = "YourTableName"; DataTable dt =..............;

    //assume "ID", "StoryDate", "Re" are the columns SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = "Test";
    cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@TableName", SqlDbType.NVarChar,25)).Value = sTableName;
    cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.NVarChar,25,"ID"));
    cmd.Parameters.Add(new SqlParameter("@StoryDate", SqlDbType.DateTime,8,"StoryDate"));
    cmd.Parameters.Add(new SqlParameter("@Re", SqlDbType.NVarChar,255,"Re")); SqlDataAdapter da = new SqlDataAdapter();
    da.InsertCommand = cmd; da.Update(dt);
      

  4.   

    代码不乱!可以执行!!
    saucer(思归/MVP) 说的很清楚了!!
    顶一下!
      

  5.   

    SqlDataAdapter的InsertCommand不支持动态表名
      

  6.   

    如果你用存储过程,是什么样的表名更本不重要了。你需要做得是把一些参数传进去,然后调用ExecuteNonQuery()执行就可以了
      

  7.   

    多谢,saucer(思归/MVP) !!!多谢各位,终于搞定了!!高兴!!散分了!!