小弟我有以下代码
可运行没有问题的是
string sqlCmdStr = "Select * From tb_CorporationData";出现错误的是
 StringBuilder sqlCmdStr = new StringBuilder("Select ");
            sqlCmdStr.Append("CorporationID, ConporationNum as 公司代码,Name as 公司名称, type as 公司类型,");
            sqlCmdStr.Append("CorDomain as 公司所在行业,Quality as 公司注册性质,Commissary as 法定代表人,");
            sqlCmdStr.Append("Status as 公司经营状况,Bound as 公司经营范围,OganNum as 企业机构代码,");
            sqlCmdStr.Append("TaxNum as 企业纳税登记号码,CustomsNum as 企业海关代码,Re as 备注 From tb_CorporationData");

            //string sqlCmdStr = "Select CorporationID as 序列号, ConporationNum as 公司代码,Name as 公司名称, type as 公司类型,CorDomain as 公司所在行业,Quality as 公司注册性质,Commissary as 法定代表人," +
            //                   "Status  as 公司经营状况,Bound as 公司经营范围,OganNum as 企业机构代码,TaxNum as 企业纳税登记号码,CustomsNum as 企业海关代码,Re as 备注 From tb_CorporationData";出现的问题都是
DataTable“TempleDataSet”中缺少 SourceColumn“ConporationNum”的 DataColumn“ConporationNum”。请各位大哥看看是什么问题可以吗?

解决方案 »

  1.   

    ConporationNum那这列你确定表中有没有啊?
      

  2.   

    这是全部代码
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;namespace Client
    {
        public partial class Form1 : Form
        {
            DataSet ds = new DataSet();        public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                /*
                StringBuilder sqlCmdStr = new StringBuilder("Select ");
                sqlCmdStr.Append("CorporationID, ConporationNum as 公司代码,Name as 公司名称, type as 公司类型,");
                sqlCmdStr.Append("CorDomain as 公司所在行业,Quality as 公司注册性质,Commissary as 法定代表人,");
                sqlCmdStr.Append("Status as 公司经营状况,Bound as 公司经营范围,OganNum as 企业机构代码,");
                sqlCmdStr.Append("TaxNum as 企业纳税登记号码,CustomsNum as 企业海关代码,Re as 备注 From tb_CorporationData");
                */
                string sqlCmdStr = "Select CorporationID as 序列号,ConporationNum as 公司代码,Name as 公司名称, type as 公司类型,CorDomain as 公司所在行业,Quality as 公司注册性质,Commissary as 法定代表人," +
                                   "Status  as 公司经营状况,Bound as 公司经营范围,OganNum as 企业机构代码,TaxNum as 企业纳税登记号码,CustomsNum as 企业海关代码,Re as 备注 From tb_CorporationData";
                 
                string sqlConStr = "Server =LocalHost;uid = sa;pwd=;DataBase=ClientSys";
                 
                //string sqlCmdStr = "Select * From tb_CorporationData";
                SqlConnection sqlConn = new SqlConnection(sqlConStr);
                try
                {
                    sqlConn.Open();
                    SqlDataAdapter sda = new SqlDataAdapter(sqlCmdStr.ToString(), sqlConStr);
                    string tmpds = "TempleDataSet";
                    sda.Fill(ds, tmpds);
                    dataGridView1.DataSource = ds.Tables[tmpds].DefaultView;
                    sqlConn.Close();
                }            catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                string sqlConStr = "Server =LocalHost;DataBase=ClientSys;Uid=sa;PWD=;";
                string sqlCMDStr = "Select * From tb_CorporationData";            try
                {
                    SqlConnection sqlCon = new SqlConnection(sqlConStr);
                    sqlCon.Open();
                    SqlDataAdapter sda = new SqlDataAdapter(sqlCMDStr,sqlConStr);
                    SqlCommandBuilder sqlCMDBuider = new SqlCommandBuilder(sda);
                    sda.Update(ds.Tables[0]);
                    sqlCon.Close();
                }            catch(SqlException ex)
                {
                    MessageBox.Show("数据库更新失败,原因是" + ex.Message);
                }
            }
        }
    }
      

  3.   

    你在运行存储过程的时候出来的列名全部是“序列号,........”这些中文了,那么你检查一下,你绑定gridview的时候,你设置的绑定列是不是被你用成“CorporationID ,.......”这些英文名字,如果是改成你现在出来的这些中文字就可以了。这种问题肯定是出在绑定上的。
      

  4.   

                try 
                { 
                    sqlConn.Open(); 
                    SqlDataAdapter sda = new SqlDataAdapter(sqlCmdStr.ToString(), sqlConStr); 
                    string tmpds = "TempleDataSet"; 
                    sda.Fill(ds, tmpds); 
                    dataGridView1.DataSource = ds.Tables[tmpds].DefaultView; 
                    sqlConn.Close(); 
                } 
    把断点打在dataGridView1.DataSource = ds.Tables[tmpds].DefaultView; 这里,然后看ds出来的数据是什么样子的,检查你设置绑定的gridview绑定列数据名字,是不是和ds带出来的列名一样
      

  5.   

    CREATE TABLE [dbo].[tb_Contact] (
    [CorporationID] [int] IDENTITY (1, 1) NOT NULL ,
    [Area] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [Address] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Phone] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Fax] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Email] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [QQ] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[tb_ContactData] (
    [CommunicateID] [int] IDENTITY (1, 1) NOT NULL ,
    [Type] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL ,
    [ContactFashion] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [PhoneNum] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [ContactDay] [datetime] NULL ,
    [MyContacter] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Content] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
    [Result] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Writer] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [WriteDay] [datetime] NULL ,
    [Re] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GOCREATE TABLE [dbo].[tb_ContactPeple] (
    [ContactPepleID] [int] IDENTITY (1, 1) NOT NULL ,
    [CorporationNum] [int] NOT NULL ,
    [Sex] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL ,
    [ChineseName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [EnglishName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Duty] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [ZhiCheng] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Mphone] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [XiaoLT] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Phone] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Fax] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Email] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Birthday] [datetime] NULL ,
    [CPlike] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [NativePlace] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Re] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[tb_CorporationData] (
    [CorporationID] [int] IDENTITY (1, 1) NOT NULL ,
    [CorporationNum] [int] NULL ,
    [CorName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [CorType] [varchar] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [CorDomain] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [ConQuality] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [ConCommissary] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [ConStatus] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [ConBound] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [ConOganNum] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [TaxNum] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [CustomsNum] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Re] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[tb_SFOperation] (
    [SFOperationID] [int] IDENTITY (1, 1) NOT NULL ,
    [SerialNum] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Product] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [UseFulLife] [datetime] NULL ,
    [DespokeDay] [datetime] NULL ,
    [SetupDay] [datetime] NULL ,
    [SetupFashion] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Principal] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [UseType] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [GetheringDay] [datetime] NULL ,
    [GetheringType] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [GetheringMoney] [money] NULL ,
    [GetheringAccount] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [InvoiceNum] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [GetheringStatus] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL ,
    [Re] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[tb_SFSpecial] (
    [SpecialID] [int] IDENTITY (1, 1) NOT NULL ,
    [Produt] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [UseDay] [datetime] NULL ,
    [Status] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [PactNum] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [PactEndDay] [datetime] NULL ,
    [PactMoney] [money] NULL ,
    [Principal] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [GethringDay] [datetime] NULL ,
    [GethringMoeny] [money] NULL ,
    [GethringAccount] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [GethringSatatus] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [Re] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[tb_TaxData] (
    [CorTaxInfoID] [int] IDENTITY (1, 1) NOT NULL ,
    [TaxPeple] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Taxnum] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [OrganNum] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [CustomsNum] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [GuoTax] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [DiTax] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [VATType] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [OpenBank] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [BankAccount] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [FinanceMgr] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOSET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GOCREATE VIEW dbo.vConporationI
    AS
    SELECT dbo.tb_CorporationData.*, dbo.tb_TaxData.TaxPeple AS Expr1, 
          dbo.tb_TaxData.GuoTax AS Expr2, dbo.tb_TaxData.DiTax AS Expr3, 
          dbo.tb_TaxData.VATType AS Expr4, dbo.tb_TaxData.OpenBank AS Expr5, 
          dbo.tb_TaxData.BankAccount AS Expr6, dbo.tb_TaxData.FinanceMgr AS Expr7, 
          dbo.tb_Contact.Area AS Expr8, dbo.tb_Contact.Address AS Expr9, 
          dbo.tb_Contact.Phone AS Expr10, dbo.tb_Contact.Fax AS Expr11, 
          dbo.tb_Contact.Email AS Expr12, dbo.tb_Contact.QQ AS Expr13
    FROM dbo.tb_CorporationData INNER JOIN
          dbo.tb_Contact ON 
          dbo.tb_CorporationData.CorporationID = dbo.tb_Contact.CorporationID CROSS JOIN
          dbo.tb_TaxDataGO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GOSET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GOCREATE VIEW dbo.vConporationI
    AS
    SELECT dbo.tb_CorporationData.*, dbo.tb_TaxData.TaxPeple AS TaxPeple, 
          dbo.tb_TaxData.GuoTax AS GuoTax, dbo.tb_TaxData.DiTax AS DiTax, 
          dbo.tb_TaxData.VATType AS VATType, dbo.tb_TaxData.OpenBank AS OpenBank, 
          dbo.tb_TaxData.BankAccount AS BankAccount, 
          dbo.tb_TaxData.FinanceMgr AS FinanceMgr, dbo.tb_Contact.Area AS Area, 
          dbo.tb_Contact.Address AS Address, dbo.tb_Contact.Phone AS Phone, 
          dbo.tb_Contact.Fax AS Fax, dbo.tb_Contact.Email AS Email, 
          dbo.tb_Contact.QQ AS QQ
    FROM dbo.tb_CorporationData INNER JOIN
          dbo.tb_Contact ON 
          dbo.tb_CorporationData.CorporationID = dbo.tb_Contact.CorporationID CROSS JOIN
          dbo.tb_TaxDataGO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO这是数据库的SQL脚本。。各位查看以下吧。