| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 617 人关注过本帖
标题:C#连接存储过程提示找不到表0
只看楼主 收藏
lanke711
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:4
帖 子:191
专家分:672
注 册: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);
                command.CommandType = 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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:36
帖 子:695
专家分: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.berui.com论坛热度好滴
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









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

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