//读取注册表
            RegistryKey mReg = Registry.CurrentUser;
            RegistryKey rr = mReg.OpenSubKey("ID");
            ID = Convert.ToString(rr.GetValue("ID"));
注册表已经建好了,初值为“1000”,位置是:HKEY_CURREN_USER\mID\ID运行后不提示出错,开始读数之后,
ID = Convert.ToString(rr.GetValue("ID"));  这句就报错了:未将对象引用设置到对象的实例。求救啊~~

解决方案 »

  1.   

    RegistryKey reg = Registry.CurrentUser.OpenSubKey("mID\\ID ", true); 
    if(reg!=null)
     ID = (string)reg.GetValue("ID"); 
      

  2.   

       //读取注册表
                RegistryKey reg = Registry.CurrentUser.OpenSubKey("mID\\ID ", true);
                if (reg != null)
                    ID = (string)reg.GetValue("ID"); 
                            //
                Form4 f4 = new Form4(Convert.ToString(salary), Convert.ToString(name), Convert.ToString(ID), Convert.ToString(position ));
                f4.Show();
    我明明把(string)reg.GetValue("ID") 赋值给了ID, 为什么下面的那段代码中的ID(红色的)还报错说:使用了未赋值的局部变量“ID”,望大侠救命啊
      

  3.   

      //读取注册表 
                RegistryKey reg = Registry.CurrentUser.OpenSubKey("mID\\ID ", true); 
                if (reg != null) 
                    ID = (string)reg.GetValue("ID"); 
                            // 
                Form4 f4 = new Form4(Convert.ToString(salary), Convert.ToString(name), Convert.ToString(ID), Convert.ToString(position )); 
                f4.Show(); 
    我明明把(string)reg.GetValue("ID") 赋值给了ID, 为什么下面的那段代码中的ID(红色的)还报错说:使用了未赋值的局部变量“ID”,望大侠救命啊
      

  4.   

    我看你上面都没有这个路经呀,\mID\ID 
    你给我们看的代码太少了点,再多一点可能会更好,
    WHAT A PITY!
      

  5.   


    就是红色的那个ID报错的:使用了未赋值的局部变量“ID”,望大侠救命啊using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Microsoft.Win32;
    namespace PersonMIS
    {
        public partial class Form2 : Form
        {
                    public Form2()
            {
                InitializeComponent();
            }        private void Form2_Load(object sender, EventArgs e)
            {        }        private void button1_Click(object sender, EventArgs e)
            {
                double salary;
                string name=textBox1.Text ;
                string ID;
                string position;
                //member m = new member();
                members ms=new members();            //职位
                if (this.radioButton4.Checked) { salary = ms.salaryPeo("兼职推销员", Convert.ToInt32(textBox2.Text)); position="兼职推销员";}
                else 
                    if (this.radioButton3.Checked) { salary = ms.salaryPeo("兼职技术员", Convert.ToInt32(textBox4.Text)); position = "兼职技术员"; }
                    else 
                        if (this.radioButton2.Checked) { salary = ms.salaryPeo("销售经理", Convert.ToInt32(textBox3.Text)); position = "销售经理"; }
                        else {salary = 8000;position="经理";}
                //创建注册表,计算ID
                /*
                ms.SetRegisterKey("mID", "ID", Convert.ToString ("1000"));            RegistryKey mReg = Registry.CurrentUser;
                RegistryKey rr = mReg.OpenSubKey("ID");            //ID = Convert.ToString(rr.GetValue("ID"));            foreach (string memID in rr.GetValueNames()) 
                    ID = Convert.ToString(rr.GetValue("memID"));
                                //listBox1.Items.add(keyname);                //listBox1.Items.Add(keyname);
                    //RegistryKey rr = rk2.OpenSubKey(ID);
                */            //读取注册表
                RegistryKey reg = Registry.CurrentUser.OpenSubKey("mID\\ID ", true);
                if (reg != null)
                    ID = (string)reg.GetValue("ID"); 
                            //
                Form4 f4 = new Form4(Convert.ToString(salary), Convert.ToString(name), Convert.ToString(ID), Convert.ToString(position ));
                f4.Show();
            }               private void button2_Click(object sender, EventArgs e)
            {
                this.Close();
            }   
        }
    }
      

  6.   

    string ID= string.EMPTY 试试,如果有 Form4 f4 = new Form4(Convert.ToString(salary), Convert.ToString(name), Convert.ToString(ID), Convert.ToString(position )); 这句话得不到值,那么ID就是未赋值。
      

  7.   

    好像提示string不包含empty的定义啊?????纠结呢
      

  8.   

    将语句RegistryKey rr = mReg.OpenSubKey("ID"); 
     改为:RegistryKey rr = mReg.OpenSubKey("HKEY_CURREN_USER\mID\ID"); 
      

  9.   

    RegistryKey rr = mReg.OpenSubKey("mID"); 少了个m