标题:C#连接存储过程提示找不到表0
只看楼主
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
结帖率:100%
 问题点数:0 回复次数:7 
C#连接存储过程提示找不到表0

下面是sql server 2008的存储过程
程序代码:
USE [MENTOR]
GO
/****** Object:  StoredProcedure [dbo].[ShowInfo]    Script Date: 05/23/2017 20:50:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER  PROCEDURE [dbo].[ShowInfo]
(
@Tables varchar(2000),--表名
@PrimaryKey varchar(500),--排序的字段名
@Sort varchar(500) = NULL,--待排序的字段名
@CurrentPage int = 1,--当前页数
@PageSize int = 5,--每页记录数
@Fields varchar(2000) = '*',--查询条件
@Filter varchar(1000) = NULL,
@Group varchar(1000) = NULL
)
AS
/**//*默认排序*/
IF @Sort IS NULL OR @Sort = ''
SET @Sort = @PrimaryKey
DECLARE @SortTable varchar(1000)
DECLARE @SortName varchar(1000)
DECLARE @strSortColumn varchar(1000)
DECLARE @operator char(2)
DECLARE @type varchar(1000)
DECLARE @prec int
/**//*设定排序语句.*/
IF CHARINDEX('DESC',@Sort)>0
BEGIN
SET @strSortColumn = REPLACE(@Sort, 'DESC', '')
SET @operator = '<='
END
ELSE
BEGIN
IF CHARINDEX('ASC', @Sort) = 0
print '1'
print REPLACE(@Sort, 'ASC', '')
SET @strSortColumn = REPLACE(@Sort, 'ASC', '')
print @strSortColumn
SET @operator = '>='
print @operator
END
IF CHARINDEX('.', @strSortColumn) > 0
BEGIN
SET @SortTable = SUBSTRING(@strSortColumn, 0, CHARINDEX('.',@strSortColumn))
SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + 1, LEN(@strSortColumn))
END
ELSE
BEGIN
SET @SortTable = @Tables
SET @SortName = @strSortColumn
print @SortTable
print @SortName
END


程序代码:

 public partial class Form1 : Form
    {
        int ToatalCountRecornd;//总记录数
        int PageItem = 100;//每页显示的条数
        int CurrentPage = 1;//当前页数

      
        public Form1()
        {
            InitializeComponent();
            

        }

        public void Form1_Load(object sender, EventArgs e)
        {
            Binddatawithpage(1);

        }
        private string strcon = @"server=.;database=MENTOR;uid=sa;pwd=sophianlove2600"; 
        private string strproc = @"ShowInfo";

             /// <summary>
            /// 
            /// </summary>
            /// <param name="conn"></param>
            /// <param name="strProcedure"></param>
            /// <param name="pageIndex"></param>
            /// <param name="pageSize"></param>
            /// <returns></returns>
        private DataTable getdata(string conn, string strProcedure, int pageIndex, int pageSize)
        {
            using (SqlConnection connetion = new SqlConnection(conn))
            {
                SqlCommand command = new SqlCommand(strproc, connetion);
                 = CommandType.StoredProcedure;
                //存储过程参数
                command.Parameters.Add("@Tables", SqlDbType.VarChar, 255).Value = "MYINFO";
                command.Parameters.Add("@PrimaryKey", SqlDbType.VarChar, 255).Value = "useid";
                command.Parameters.Add("@Sort", SqlDbType.VarChar, 255).Value = "useid";
                command.Parameters.Add("@Fields", SqlDbType.NVarChar, 1000).Value = "*";
                command.Parameters.Add("@PageSize", SqlDbType.Int).Value = pageSize.ToString();
                command.Parameters.Add("@CurrentPage", SqlDbType.Int).Value = pageIndex.ToString();
               
                if (connetion.State != ConnectionState.Open)
                {
                    connetion.Open();
                }
                try
                {
                    //填充数据
                    SqlDataAdapter da = new SqlDataAdapter(command);
                    DataSet ds = new DataSet();
                    da.Fill(ds);
                    //获取总记录数
                    ToatalCountRecornd = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
                    //返回数据集
                    return ds.Tables[0];
                }
                catch (SqlException err)
                {
                    MessageBox.Show(err.Message);
                    return null;
                }
                finally
                {
                    connetion.Close();
                }
            }

        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="INdex"></param>
        private void Binddatawithpage(int INdex)
        {
            toolStripTextBox1.Text = INdex.ToString();
            dataGridView1.DataSource = getdata(strcon, strproc, INdex,100);
            toolStripLabel1.Text = ToatalCountRecornd.ToString() ;
        }    
    }



刚开始执行几次正常,几次之后就提示找不到表0了。

想问一下为什么会突然找不到表0了?
搜索更多相关主题的帖子: server 
2017-05-23 21:03
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
估计可能是DataSet并没有填充进去,DataSet里面没有table
调用下面这句出的错
//获取总记录数
ToatalCountRecornd = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
2017-05-24 19:29
zzzhen
Rank: 1
等 级:禁止发言
帖 子:8
专家分:0
注 册:2017-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2017-06-01 10:37
zzzhen
Rank: 1
等 级:禁止发言
帖 子:8
专家分:0
注 册:2017-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2017-06-01 10:38
zzzhen
Rank: 1
等 级:禁止发言
帖 子:8
专家分:0
注 册:2017-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2017-06-01 10:41
百瑞地产网
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-5-25
得分:0 
www.论坛热度好滴
2017-06-01 18:30
leisiege
Rank: 4
等 级:业余侠客
威 望:8
帖 子:95
专家分:235
注 册:2015-10-22
得分:0 
ds.Tables[0]报错了把。ds不是空,并且tables属性里面没有table。就这个错误了。0索引处没东西。
tables{空}
2017-06-30 22:06
leisiege
Rank: 4
等 级:业余侠客
威 望:8
帖 子:95
专家分:235
注 册:2015-10-22
得分:0 
ds.Tables[0]报错了把。ds不是空,并且tables属性里面没有table。就这个错误了。0索引处没东西。
tables{空}
2017-06-30 22:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-477276-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.212472 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved