0

这个问题已经在整个网络上得到解决,我尝试了很多事情都没有成功。SQL EXPRESS 服务设置为接受本地系统帐户,但问题仍然存在。

这是我的连接字符串:

<add name="PhoneTemplateChange" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Database=PhoneTemplateChange;Integrated Security=SSPI" />

我在我拥有的构造函数中创建了一个类来执行数据库操作

_connectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["PhoneTemplateChange"].ConnectionString;

以及该类中插入数据的方法

 public void AddNewChangeOrder(int operation, int targetExt)
    {
        using (SqlConnection con = new SqlConnection(_connectionString))
        {
            string sql = "INSERT into [dbo].ChangeOrder (operation, targetExt, dtrequested) VALUES (@operation, @targetExt, @dtrequested)";
            using (SqlCommand cmd = new SqlCommand(sql))
            {
                try
                {

                    cmd.Parameters.AddWithValue("@operation", operation);
                    cmd.Parameters.AddWithValue("@targetExt", targetExt);
                    cmd.Parameters.AddWithValue("dtrequested", DateTime.Now);
                    //con.CreateCommand();
                    con.Open();
                    //cmd.InitializeLifetimeService();
                    int rows = cmd.ExecuteNonQuery();
                    con.Close();
                }
                catch (SqlException e)
                {
                    throw new Exception(e.Message);
                }
            }
        }

我已经尝试过尝试所有不同建议的连接字符串,上面方法中的注释代码也是我试图解决问题的方法。还是没有运气!

我还更改了连接字符串,这样我得到了两个不同的异常

 Database=PhoneTemplateChange

以上给出了标题中的例外情况。以下给出了异常“无法打开登录请求的数据库 PhoneTemplatechange.mdf。用户 'mydomain\myusername' 的登录失败”

 Database=PhoneTemplateChange.mdf

有任何想法吗?

4

1 回答 1

2

您缺少指定用作连接的代码cmdcon。因此,命令 (cmd) 没有连接,并且 con 根本不与任何命令相关联。

在执行之前添加这一行:

cmd.Connection - con;

或者(和更好的 IMO)更改您的 using 语句,如下所示:

using (SqlCommand cmd = new SqlCommand(sql, con))
于 2013-08-02T16:06:36.250 回答