【问题标题】:Input data is not loading into database输入数据未加载到数据库中
【发布时间】:2020-02-28 15:42:03
【问题描述】:

我遇到以下问题:我有一个程序应该将一些数据加载到数据库中,但它不工作。没有弹出错误,只是没有加载和保存数据。

这是连接代码:

public Conexion()
{
    string dataSource = ".\\SQLEXPRESS";
    string rutaBase = HostingEnvironment.MapPath(@"/App_Data/Database1.mdf");
    cadenaConexion = "Data Source=" + dataSource + ";AttachDbFilename=\""
        + rutaBase + "\";Integrated Security=true;User Instance=True";
}

编辑 1:这是用于插入数据的代码和服务器资源管理器的屏幕截图。

namespace WebApplication1.Persistencia
{
    public class PersistenciaEmpresaAuspiciante
    {
        readonly Conexion conexion = new Conexion();

        public bool ExisteAuspiciante(EmpresasAuspiciantes pAuspiciante)
        {
            if (pAuspiciante == null)
                return false;

            string sql = "Select * FROM AUSPICIANTES WHERE IdAuspiciante=" + pAuspiciante.idAuspiciante.ToString();
            DataSet resultado = conexion.Seleccion(sql);

            if (resultado == null)
                return false;

            return resultado.Tables[0].Rows.Count > 0;
        }

        public bool AltaAuspiciante(EmpresasAuspiciantes pAuspiciante)
        {
            if (pAuspiciante == null)
                return false;

            if (ExisteAuspiciante(pAuspiciante))
                return false;

            string sql = "INSERT INTO AUSPICIANTES (IdAuspiciante, NombreAuspiciante) Values"
                + pAuspiciante.idAuspiciante.ToString() + ", '"
                + pAuspiciante.nombreAuspiciante + " ', '"
                 + "')";
            return conexion.Consulta(sql);
        }

        public bool BajaAuspiciante(EmpresasAuspiciantes pAuspiciante)
        {
            if (pAuspiciante == null)
                return false;

            if (!ExisteAuspiciante(pAuspiciante))
                return false;

            string sql = "DELTE FROM AUSPICIANTES WHERE IdAuspiciante=" + pAuspiciante.idAuspiciante.ToString();
            return conexion.Consulta(sql);
        }

        public bool ModificarAuspiciante(EmpresasAuspiciantes pAuspiciante)
        {
            if (pAuspiciante == null)
                return false;

            if (!ExisteAuspiciante(pAuspiciante))
                return false;

            string sql = "UPDATE AUSPICIANTES SET"
                + "NombreAuspiciante" + pAuspiciante.nombreAuspiciante
                + "' WHERE IdAuspiciante =" + pAuspiciante.idAuspiciante.ToString() + ";";
            return conexion.Consulta(sql);
        }

        public List<EmpresasAuspiciantes> ListaAuspiciante()
        {
            string sql = "SELECT * FROM AUSPICIANTES";
            DataSet resultado = conexion.Seleccion(sql);
            List<EmpresasAuspiciantes> lista = new List<EmpresasAuspiciantes>();

            if (resultado == null)
                return lista;

            DataRowCollection tabla = resultado.Tables[0].Rows;

            foreach (DataRow fila in tabla)
            {
                object[] elementos = fila.ItemArray;
                EmpresasAuspiciantes auspiciante = new EmpresasAuspiciantes();
                auspiciante.idAuspiciante = int.Parse(elementos[0].ToString());
                auspiciante.nombreAuspiciante = elementos[1].ToString();
                lista.Add(auspiciante);
            }

            return lista;
        }
    }
}

Database explorer

.mdf 文件的连接字符串:

Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="C:\Users\srjua\OneDrive\Escritorio\ctc\Codificacion, persistencia y controladora 2\WebApplication1\App_Data\Database1.mdf";Integrated Security=True

【问题讨论】:

  • 您可以编写用于发布数据的代码以提供帮助!
  • 可能您正在写入错误的数据库或服务器。数据库可能已经连接到服务器。唯一一次在连接字符串中使用 mdf 文件名是您有一个本地数据库。所以删除 AttachDbFilename。 DataSource 应该是 SQL Server Management Studio 登录窗口上显示的服务器名称和实例。如果服务器有多个数据库,那么您需要在连接字符串 (Initial Catalog=myDataBase;) 中或在命令文本中使用“USE”来指定数据库。

标签: c# sql asp.net sql-server


【解决方案1】:

对于LocalDb 操作,您在dataSource 上做错了。它 应该是(LocalDB)\MSSQLLocalDB

您的连接字符串应如下所示:

public Conexion()
{
    string dataSource = "(LocalDB)\MSSQLLocalDB";
    string rutaBase = HostingEnvironment.MapPath(@"/App_Data/Database1.mdf");
    cadenaConexion = "Data Source=" + dataSource + ";AttachDbFilename=\""
        + rutaBase + "\";Integrated Security=true;";
}

通常应该是这样的

 string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\DataBaseName.mdf;Connect Timeout=30;Integrated Security=True;";

注意:LocalDB instances都是User Instances,不需要在你的连接字符串中指定User Instance=true,在 事实上它甚至不受支持 (as you can see)。只需摆脱这部分 它会正常工作

您可以参考Official Document

希望这会有所帮助。

【讨论】:

  • 我已经尝试像您说的那样更改数据源,但弹出错误。 “无法识别的景观序列”。
  • 请根据问题包含您的插入命令代码。否则很难帮助你明白我的意思吗?
  • 用我正常的方式试试,我很确定你在放/时也犯了错误
  • 在像这样的数据源之前多加@`@"Data Source`,另一件事是你还没有打开你的连接如何执行查询。
  • 另一个提示您也可以尝试使用 string dataSource = ".\SQLEXPRESS"; 只需去掉一个 () 反斜杠而不是两个可能有效的 (\)
猜你喜欢
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多