对每一列 都设定了 不能为空  NOT NULL
但是  我每次 updata  或者 insert 多项之后
总会多一行 红白行  除了 有一列 数据类型为 int 的   显示数据为  0
但是 其他不允许空白列   会是空白    Y?

解决方案 »

  1.   

    string sqlckid = "select count(*) from BaseRawMaterial where RawMaterialID = '" + tbRawID.Text + "'";
                        conn.Open();
                        comm.CommandText = sqlckid;
                        int count = (int)comm.ExecuteScalar();
                        conn.Close();
                        if (count > 0)
                        {
                            string SQLBSAmount = "update BaseRawMaterial set Amount = '" + tbQuantity.Text + "'+ [Amount] where RawMaterialID = '" + tbRawID.Text + "'";
                            conn.Open();
                            SqlCommand cmd = new SqlCommand(SQLBSAmount, conn);
                            cmd.ExecuteNonQuery();
                            conn.Close();
                        }
                        else
                        {
                            string BSRaoMaterialAdd = "insert BaseRawMaterial(RawMaterialID,RawMaterial,Kind,Amount,Unit,PertainToDepartment,Notes) values('" + tbRawID.Text
                                + "','" + tbRawName.Text + "','" + ddlKind.Text + "','" + tbQuantity.Text + "','" + tbUnit.Text + "','" + ddlDepotCategory.Text
                                + "','" + tbNotes.Text + "')";
                            conn.Open();
                            SqlCommand cmd = new SqlCommand(BSRaoMaterialAdd, conn);
                            cmd.ExecuteNonQuery();
                            conn.Close();
                        }C#代码SQL 代码  :
    USE [BH-ETHAN]
    GO
    /****** 对象:  Table [dbo].[BaseRawMaterial]    脚本日期: 11/12/2011 09:36:54 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[BaseRawMaterial](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [RawMaterialID] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [RawMaterial] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [Kind] [varchar](8) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [Amount] [int] NOT NULL,
    [Unit] [varchar](2) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [UnitPrice] [float] NULL,
    [Aggregate]  AS ([Amount]*[UnitPrice]),
    [PertainToDepartment] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [Notes] [text] COLLATE Chinese_PRC_CI_AS NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GO
    SET ANSI_PADDING OFF
      

  2.   

    但是那空白行的 一列  显示 0  的
    根本不曾insert或者update
      

  3.   

    sql server 更不会自己给你insert或者update
      

  4.   

    [Amount] [int] NOT NULL,
    也没有设置的
      

  5.   

    你先查看一下數據庫的默認字段,如果不能為空,而你插入null/ 如果你的值為"" 空字符串,則可以插入。空字符串是有值 的。
      

  6.   

    默认字段都是没有的
    刚刚加了 null 想先试试