首页 > 解决方案 > Application.StartupPath 指向 C:program files x86/Microsoft Visual Studio/2019/Community/Common 7/IDE 文件夹

问题描述

我正在用 C# 开发一个 WinForms 应用程序,我想通过下面类中的代码将我的访问数据库连接到我的应用程序,但是 application.StartupPath 没有指向包含我的应用程序可执行文件的 bin/debug 文件夹,而是它指向到这个 C:program files x86/Microsoft Visual Studio/2019/Community/Common 7/IDE 文件夹,我的应用程序文件甚至不在 C 盘中我不知道是什么导致了问题。

这是我的代码:

enter code here
    using System;
using System.Configuration;
using System.Data.OleDb;
using System.Windows.Forms;

namespace GradeApplicationForm.Models
{
    public static class Connector
    {
        public static OleDbConnection Connect()
        {
            return new OleDbConnection($@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + @"grades.accdb");
        }
    }
}



using System.Collections.Generic;
using System.Linq;
using System.Data;
using Dapper;
using GradeApplicationForm.Models;
using System.Data.OleDb;

namespace GradeApplicationForm.DataAccess
{
    class StudentDataAccess
    {
            public List<StudentsModel> getStudents()
            {
                

                using (OleDbConnection connection = Connector.Connect())
                {
                string sql = "SELECT * FROM tbl_StudentInfo";
                var result = connection.Query<StudentsModel>(sql).ToList();
                return result;

                }
            }
        public bool InsertStudent(string Name, string Age,string Phone,string City,string Department,string UserId)
        {
            bool value;
            using (OleDbConnection connection = Connector.Connect())
            {
                connection.Open();
                List<StudentsModel> students = new List<StudentsModel>();
                if (string.IsNullOrEmpty(Name) || string.IsNullOrEmpty(Age)||string.IsNullOrEmpty(Phone)|| string.IsNullOrEmpty(City))
                {
                    value = false;
                }
                else
                {

                    students.Add(new StudentsModel { Name = Name, Age= int.Parse(Age) ,Phone=Phone,City=City,Department=Department,UserId=int.Parse(UserId)});
                    connection.Execute("INSERT INTO [tbl_StudentInfo](Name,Age,Phone,City,Department,UserId) values(@Name,@Age,@Phone,@City,@Department,@UserId)", students);
                    value = true;


                }
                return value;
            }
        }
        public bool DeleteStudent(int ID)
        {
            bool value;
            using (OleDbConnection connection = Connector.Connect())
            {
                connection.Open();
                List<StudentsModel> students = new List<StudentsModel>();
                if (ID==0)
                {
                    value = false;
                }
                else
                {
                    students.Add(new StudentsModel { ID=ID});
                    connection.Execute("Delete From [tbl_StudentInfo] WHERE ID=@ID", students);
                    value = true;


                }
                return value;
            }
        }
  
    }
}

和错误:

在此处输入图像描述

标签: c#winformsclassms-accessoledbconnection

解决方案


推荐阅读