Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用存储过程在数据集中找不到表0_C#_Asp.net_Sql Server 2008 - Fatal编程技术网

C# 使用存储过程在数据集中找不到表0

C# 使用存储过程在数据集中找不到表0,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,执行存储过程后,数据集没有填充 protected void btnsub_Click(object sender, EventArgs e) { ArrayList arInsert = ReturnParameter_insert(); DataSet dsInsertProfile = objadmin.GetGridData(arInsert, objconstant.sSP_INSERT_PROFILE); if(int.Parse(dsInsertPro

执行存储过程后,数据集没有填充

protected void btnsub_Click(object sender, EventArgs e)
{  
    ArrayList arInsert = ReturnParameter_insert();
    DataSet dsInsertProfile = objadmin.GetGridData(arInsert, objconstant.sSP_INSERT_PROFILE);

    if(int.Parse(dsInsertProfile.Tables[0].Rows[0].ItemArray[0].ToString())== 0)
    {
         lblThank.Text = "Your profile have been successfully saved.";
    }
    else
    {
        lblThank.Text = "Your profile is not saved, please try again later.";
    }
}

public ArrayList ReturnParameter_insert()
{
    ArrayList arProfile = new ArrayList();
    Object[] c_first_name = new object[3] { "@strFname", "Varchar", (txtfname.Text != "") ? txtfname.Text : "" };
    arProfile.Add(c_first_name);
    return arProfile;
}

public DataSet GetGridData(ArrayList dbArray, string sSpName)
{
        DataSet dsDataSet = new DataSet();
        dsDataSet = datamanager.GetGridData(dbArray, sSpName);
        return dsDataSet;
}

public static SqlDbType GetSqlDataType(string sDataType)
{
    return (sDataType == "Integer") ? SqlDbType.Int : (sDataType == "Varchar") ? SqlDbType.VarChar : (sDataType == "Date") ? SqlDbType.Date : SqlDbType.BigInt;
}

public static DataSet GetGridData(ArrayList dbArray, string sSpName)
{
        DataSet dsDataSet = new DataSet();
        SqlConnection cn = createConnection();
        SqlCommand cmd = new SqlCommand();
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = sSpName;

        object objPrMtrName;
        object objSqlType;
        object objPrMtrVal;
        int i;

        for (i = 0; i < dbArray.Count; i++)
        {
            objPrMtrName = ((object[])(dbArray[i]))[0];
            objSqlType = ((object[])(dbArray[i]))[1];
            objPrMtrVal = ((object[])(dbArray[i]))[2];
            cmd.Parameters.Add(objPrMtrName.ToString(), GetSqlDataType(objSqlType.ToString())).Value = objPrMtrVal;
        }

        cmd.Connection = cn;

        try
        {
            SqlDataAdapter adp = new SqlDataAdapter(cmd);
            adp.Fill(dsDataSet);
            return dsDataSet;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            cn.Close();
            cn.Dispose();
        }
}

这里我使用的是3层,同样的方法也可以成功地用于其他页面,但不适用于这个特定的代码。GETGRIDDATA方法中的数据集正在填充空值。我找不到。请帮助我……

您在过程中执行insert操作,而不是如何返回数据
insert into语句
insert操作不检索操作


…要检索数据,您需要使用
选择*
语句调用过程。

您在过程中执行插入操作,而不是如何返回数据
插入到语句
插入操作不检索操作


…要检索数据,您需要使用
select*
语句调用过程。

存储的过程中没有select语句。adapter.fill()应该从存储过程的输出接收某种类型的表。

存储过程中没有select语句。adapter.fill()应该从存储过程的输出接收某种类型的表。

从这里我可以看到,您正在执行一个只执行INSERT命令的存储过程,返回空值的原因是,UPDATE或INSERT等非查询命令通常只返回受影响的行数,例如1,而不返回插入到的表的数据


您需要在插入后执行SELECT命令才能取回任何数据。

从这里我可以看到,您正在执行一个只执行insert命令的存储过程,返回空值的原因是,UPDATE或INSERT等非查询命令通常只返回受影响的行数,例如1,而不返回插入到的表的数据


您需要在插入后执行SELECT命令才能取回任何数据。

因为您在存储过程中使用了
insert Into

protected void btnsub_Click(object sender, EventArgs e)
{  
    ArrayList arInsert = ReturnParameter_insert();
    DataSet dsInsertProfile = objadmin.GetGridData(arInsert, objconstant.sSP_INSERT_PROFILE);

    if(int.Parse(dsInsertProfile.Tables[0].Rows[0].ItemArray[0].ToString())== 0)
    {
         lblThank.Text = "Your profile have been successfully saved.";
    }
    else
    {
        lblThank.Text = "Your profile is not saved, please try again later.";
    }
}

public ArrayList ReturnParameter_insert()
{
    ArrayList arProfile = new ArrayList();
    Object[] c_first_name = new object[3] { "@strFname", "Varchar", (txtfname.Text != "") ? txtfname.Text : "" };
    arProfile.Add(c_first_name);
    return arProfile;
}

public DataSet GetGridData(ArrayList dbArray, string sSpName)
{
        DataSet dsDataSet = new DataSet();
        dsDataSet = datamanager.GetGridData(dbArray, sSpName);
        return dsDataSet;
}

public static SqlDbType GetSqlDataType(string sDataType)
{
    return (sDataType == "Integer") ? SqlDbType.Int : (sDataType == "Varchar") ? SqlDbType.VarChar : (sDataType == "Date") ? SqlDbType.Date : SqlDbType.BigInt;
}

public static DataSet GetGridData(ArrayList dbArray, string sSpName)
{
        DataSet dsDataSet = new DataSet();
        SqlConnection cn = createConnection();
        SqlCommand cmd = new SqlCommand();
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = sSpName;

        object objPrMtrName;
        object objSqlType;
        object objPrMtrVal;
        int i;

        for (i = 0; i < dbArray.Count; i++)
        {
            objPrMtrName = ((object[])(dbArray[i]))[0];
            objSqlType = ((object[])(dbArray[i]))[1];
            objPrMtrVal = ((object[])(dbArray[i]))[2];
            cmd.Parameters.Add(objPrMtrName.ToString(), GetSqlDataType(objSqlType.ToString())).Value = objPrMtrVal;
        }

        cmd.Connection = cn;

        try
        {
            SqlDataAdapter adp = new SqlDataAdapter(cmd);
            adp.Fill(dsDataSet);
            return dsDataSet;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            cn.Close();
            cn.Dispose();
        }
}
基于
属性的访问:

SqlDataAdapter adp = new SqlDataAdapter(cmd);
adp.Fill(dsDataSet);
var table1 = dsDataSet.Tables[0];
var table2 = dsDataSet.Tables[1];

链接:

因为您在存储过程中使用了
Insert-Into

protected void btnsub_Click(object sender, EventArgs e)
{  
    ArrayList arInsert = ReturnParameter_insert();
    DataSet dsInsertProfile = objadmin.GetGridData(arInsert, objconstant.sSP_INSERT_PROFILE);

    if(int.Parse(dsInsertProfile.Tables[0].Rows[0].ItemArray[0].ToString())== 0)
    {
         lblThank.Text = "Your profile have been successfully saved.";
    }
    else
    {
        lblThank.Text = "Your profile is not saved, please try again later.";
    }
}

public ArrayList ReturnParameter_insert()
{
    ArrayList arProfile = new ArrayList();
    Object[] c_first_name = new object[3] { "@strFname", "Varchar", (txtfname.Text != "") ? txtfname.Text : "" };
    arProfile.Add(c_first_name);
    return arProfile;
}

public DataSet GetGridData(ArrayList dbArray, string sSpName)
{
        DataSet dsDataSet = new DataSet();
        dsDataSet = datamanager.GetGridData(dbArray, sSpName);
        return dsDataSet;
}

public static SqlDbType GetSqlDataType(string sDataType)
{
    return (sDataType == "Integer") ? SqlDbType.Int : (sDataType == "Varchar") ? SqlDbType.VarChar : (sDataType == "Date") ? SqlDbType.Date : SqlDbType.BigInt;
}

public static DataSet GetGridData(ArrayList dbArray, string sSpName)
{
        DataSet dsDataSet = new DataSet();
        SqlConnection cn = createConnection();
        SqlCommand cmd = new SqlCommand();
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = sSpName;

        object objPrMtrName;
        object objSqlType;
        object objPrMtrVal;
        int i;

        for (i = 0; i < dbArray.Count; i++)
        {
            objPrMtrName = ((object[])(dbArray[i]))[0];
            objSqlType = ((object[])(dbArray[i]))[1];
            objPrMtrVal = ((object[])(dbArray[i]))[2];
            cmd.Parameters.Add(objPrMtrName.ToString(), GetSqlDataType(objSqlType.ToString())).Value = objPrMtrVal;
        }

        cmd.Connection = cn;

        try
        {
            SqlDataAdapter adp = new SqlDataAdapter(cmd);
            adp.Fill(dsDataSet);
            return dsDataSet;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            cn.Close();
            cn.Dispose();
        }
}
基于
属性的访问:

SqlDataAdapter adp = new SqlDataAdapter(cmd);
adp.Fill(dsDataSet);
var table1 = dsDataSet.Tables[0];
var table2 = dsDataSet.Tables[1];

链接:

问题出在存储过程中。。。您必须将select语句添加到存储过程中,以便在数据集中返回结果

问题出在存储过程中。。。您必须将select语句添加到存储过程中,以便在数据集中返回结果

,然后开始尝试在SQL Server Management studio上执行存储过程,并检查其是否工作。@Yasser我的存储过程工作正常我做了一些更改。那么,您的问题解决了吗?如果是,在这种情况下,请在此处发布答案。首先,请尝试在SQL Server Management studio上执行存储过程并检查其是否有效。@Yasser我的存储过程工作正常,我做了一些更改。那么,您的问题解决了吗?如果是,在这种情况下,请将答案张贴在此处。感谢大家的回复,这对我帮助很大:)您好,该问题已在特定页面的存储过程中得到解决。然后,我再次对其他aspx页面使用相同的过程,现阶段出现错误。public ArrayList ReturnParameter_insert(){ArrayList arProfile=new ArrayList();Object[]c_first_name=new Object[3]{“@strFname”,“Varchar”,(txtfname.Text!=”)?txtfname.Text:“};arProfile.Add(c_first_name);return arProfile;}当然,我的存储过程中有问题。。。我把它改为boldCREATE过程spInsert_profile(@strFname varchar(200))作为开始插入gdt_用户([c_first_name],[d_modified_dttm],[d_created_dttm])值(@strFname,GETDATE(),GETDATE())end谢谢大家的回复,这对我帮助很大:)嗨,这个问题已经在一个特定页面的存储过程中得到了解决。然后我再次对其他aspx页面使用相同的过程,在这个阶段给出了错误。public ArrayList ReturnParameter_insert(){ArrayList arProfile=new ArrayList();Object[]c_first_name=new Object[3]{“@strFname”,“Varchar”,(txtfname.Text!=”)?txtfname.Text:“};arProfile.Add(c_first_name);return arProfile;}当然,我的存储过程中有问题。。。我把它改为boldCREATE过程spInsert_profile(@strFname varchar(200))作为开始插入gdt_用户([c_first_name],[d_modified_dttm],[d_created_dttm])值(@strFname,GETDATE(),GETDATE())end谢谢大家的回复,这帮了我很多忙..当然,我的商店程序有问题。。。我在存储过程中添加了select语句感谢大家的回复,这对我帮助很大..当然,我在存储过程中遇到了问题。。。我在storeprocedure中添加了select语句