本程序段:通过Sql的存储过程创建一个表,并将该表作为datagridview的数据源显示出来,最终便于用户界面上编辑,现在问题是: 总提示表己存在,请高手指点,错在哪?谢了
       public DataTable 创建票据表(DataGridView DataGridView, string 数据库, string 过程)
        {
            DataGridView = new DataGridView();
            string 票号 = DateTime.Now.ToString("yyyyMMddHHmmss");
            SqlCommand Cmd = new SqlCommand();
            Cmd.Connection = new SqlConnection("server=.;uid=sa;pwd=sa;Database= " + 数据库);
            Cmd.CommandType = CommandType.StoredProcedure;
            Cmd.CommandText = 过程;
            Cmd.CommandTimeout = 5;
            SqlParameter TableCol = new SqlParameter("@Table", 票号);
            Cmd.Parameters.Add(TableCol);
            Cmd.Connection.Open();
            Cmd.ExecuteNonQuery();            SqlDataAdapter adapter = new SqlDataAdapter(Cmd);
            DataSet DataSet = new DataSet();            adapter.Fill(DataSet, 票号);
            DataGridView.DataSource = DataSet.Tables[0].DefaultView;            DataSet = null;
            adapter = null;
            Cmd.Dispose();
            return DataSet.Tables[0];
        }
Sql的存储过程创建一个表

解决方案 »

  1.   

    SqlDataAdapter adapter = new SqlDataAdapter(Cmd);
                DataSet DataSet = new DataSet();cmd得是select语句吧。。
    你这还是存储过程吧。。
      

  2.   

    过程是己能将表创建好的,只是作为datagridview数据源时,总说找不到,可实际是己存在的了
      

  3.   

    你要确定两个地方。。
    第一;adapter.Fill(DataSet, 票号);是不是抽出数据来了。。
    第二。DataSet 设成null是不是产生影响了。
      

  4.   


    注销了DataSet =null  还是显示为“数据库中已存在名为 '20130226214852' 的对象。”哎,真烦人,弄了两天,就那几行,。
      

  5.   

    老大我都试过很多种了,取消取据的,又变成了DataGridView.DataSource = null,错误提示表示为找不到DataSet.Tables[0],真郁闷呀。
      

  6.   

    Cmd.Text = "Select * from 表名";SqlDataAdapter adapter = new SqlDataAdapter(Cmd);
                DataSet DataSet = new DataSet();            adapter.Fill(DataSet, 票号);
    试试
      

  7.   


    USE [Store_2013]
    GO/****** Object:  StoredProcedure [dbo].[创建表]    Script Date: 2013/2/27 11:35:48 ******/
    DROP PROCEDURE [dbo].[创建表]
    GO/****** Object:  StoredProcedure [dbo].[创建表]    Script Date: 2013/2/27 11:35:48 ******/
    SET ANSI_NULLS ON
    GOSET QUOTED_IDENTIFIER ON
    GOCreate proc [dbo].[创建表]
    @Table varchar(20)
     ASbegin --Declare @Table varchar(20)
    --Exec(
    --  'SET ' +  @Table + '= t2'
    --  )
    Exec (
    'CREATE TABLE [' + @Table + '](
    [ID] [varchar](10) NOT NULL primary key,
    [编号] [varchar](15) NULL ,
    [品名] [varchar](30) NULL,
    [规格] [varchar](50) NULL,
    [数量] [float] NULL,
    [单位] [varchar](10) NULL,
    [单价] [float] NULL,
    [百万] [int] NULL,
    [十万] [int] NULL,
    [万] [int] NULL,
    [千] [int] NULL,
    [十] [int] NULL,
    [元] [int] NULL,
    [角] [int] NULL,
    [分] [int] NULL,
    [金额] [float] NULL)'
    )
    --Exec
    --  (
    -- 'insert into [' + @Table + '] ([编号]) Values (0)'
    --  )
    End GO
      

  8.   

    你的select呢,你这个存储过程执行后根本没有返回数据表啊
    select * from @Table