你调用的对象是空的。字符串赋值时的异常

时间:2012-02-19 17:04:18

标签: c#

这是我的代码,用于生成自动生成的作业代码并将其填入文本框

          public void newjobecodenoget(){
         String jobcodeno = null;
        OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection(connString);
        oleDbConnection1.Open();


        String query = "SELECT TOP 1 jobpk FROM jobcodemastertable ORDER BY jobpk DESC";
        OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString);


        DataSet ds = new DataSet();

        dAdapter.Fill(ds, "tbljobrdataview");
        Int32  S = int.Parse(ds.Tables[0].Rows[0][0].ToString());
        S++;

         jobcodeno = "NFT" + S.ToString();
         MessageBox.Show( jobcodeno);
         txtjobcode.Text = "NFT" + S.ToString();

    }

但是我在最后一行得到例外,即txtjobcode.Text =“NFT”+ S.ToString(); 你调用的对象是空的。 所有其他的东西都很好,生成了jobcode并显示在消息框中 任何人都可以帮助

我的txtjobecode被声明为

private void InitializeComponent()
        {
         this.txtjobcode = new System.Windows.Forms.TextBox();  
// 
            // txtjobcode
            // 
            this.txtjobcode.Location = new System.Drawing.Point(98, 23);
            this.txtjobcode.Name = "txtjobcode";
            this.txtjobcode.Size = new System.Drawing.Size(91, 20);
            this.txtjobcode.TabIndex = 0;
            //

} 

2 个答案:

答案 0 :(得分:3)

由于明确S已声明并且其值为txtjobcodenull,因此您会得到此(相当不言自明)的异常。您没有显示您声明或使用txtjobcode的位置,但这是您的问题。

答案 1 :(得分:2)

显然,txtjobcode为空。由于我没有看到txtjobcode被声明和分配到哪里,我无法告诉你为什么它是null。