Program.cs 文件不接受我创建的表单名称

Program.cs file wont accept name of form that I've created

我一直在使用 Visual Studio 表单创建大学课程作业的应用程序,我试图启动我制作的表单以检查它是否连接到它背后的数据库,但它不会'不接受表单名称是合法的。我不知道为什么,因为它出现在解决方案资源管理器中。

这是 program.cs 的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FoxhillCustomer
{
    internal static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new frmViewEditStaff());
        }
    }
}

这是 frmViewEditStaff.cs 的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace FoxhillViewEditStaff
{
    public partial class frmViewEditStaff : Form
    {
        SqlDataAdapter daViewEditStaff;
        DataSet dsFoxhillDentistryFinal = new DataSet();
        SqlCommandBuilder cmdBViewEditStaff;
        DataRow drViewEditStaff;
        String connStr, sqlViewEditStaff;
        int selectedTab = 0;
        bool staffSelected = false;
        int staffNoSelected = 0;

        public frmViewEditStaff()
        {
            InitializeComponent();
        }

        private void frmViewEditStaff_Load(object sender, EventArgs e)
        {
            connStr = @"Data Source = .\sqlexpress; Initial Catalog = InTheDogHouse; Integrated Security = true";

            sqlViewEditStaff = @"select * from Staff";
            daViewEditStaff = new SqlDataAdapter(sqlViewEditStaff, connStr);
            cmdBViewEditStaff = new SqlCommandBuilder(daViewEditStaff);
            daViewEditStaff.FillSchema(dsFoxhillDentistryFinal, SchemaType.Source, "ViewEditStaff");
            daViewEditStaff.Fill(dsFoxhillDentistryFinal, "ViewEditStaff");


            dgvStaff.DataSource = dsFoxhillDentistryFinal.Tables["Staff"];
        dgvStaff.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

        tabStaff.SelectedIndex = 1;
        tabStaff.SelectedIndex = 0;

    }
}

}

您的表单位于 FoxhillViewEditStaff 的命名空间中。您的 Program class 位于 FoxhillCustomer 的命名空间中,并且您没有针对 FoxhillViewEditStaff 命名空间的 using 指令。

强烈建议您:

  • 为项目中的所有 classes 使用一个命名空间
  • 重命名所有表单以遵循正常的 .NET 命名约定,使代码更清晰

可以 只添加一个 using 指令,但将 class 放入同一个命名空间 IMO 中会更明智。