【问题标题】:Two common errors prevent this website to work correctly两个常见错误阻止本网站正常工作
【发布时间】:2015-09-14 14:09:56
【问题描述】:

这是一个非常简单的网站,用户填写输入并可以将它们保存在 sql 数据库中,也可以发送电子邮件。但是我有两个错误,这是第一个:

尝试为文件附加自动命名的数据库 C:\Users...\Desktop\Dpp2012New\App_Data\dppdatabase.mdf 失败。一个 存在同名数据库,或指定文件不能 已打开,或者它位于 UNC 共享上。

描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。

异常详细信息:System.Data.SqlClient.SqlException:尝试为文件附加自动命名的数据库 C:\Users...\Desktop\Dpp2012New\App_Data\dppdatabase.mdf 失败。一个 存在同名数据库,或指定文件不能 已打开,或者它位于 UNC 共享上。

这是第二个:

“System.Data.SqlClient.SqlException”类型的未处理异常 发生在 System.Data.dll

显示:

'('.sql 附近的语法不正确

获取代码cmd.ExecuteNonQuery();

下面是我的代码:

public partial class _Default : System.Web.UI.Page
{
    SqlConnection con = new SqlConnection(@"Data Source= LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\user\Documents\Visual Studio     2015\WebSites\WebSite4\App_Data\Database.mdf;Integrated Security=True");
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        Response.Redirect("https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1#identifier");
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        con.Open();
        SqlCommand cmd = con.CreateCommand();
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.CommandText = "save ('"+txtName.Text+"','"+txtLtName.Text+"','"+compName.Text+"','"+address0ne.Text+"','"+addressTwo.Text+"','"+cityName.Text+"','"+reionName.Text+"','"+postCode.Text+"','"+countryName.Text+"','"+emailAddress.Text+"')";
        cmd.ExecuteNonQuery();

        con.Close();
    }

    protected void TextBox3_TextChanged(object sender, EventArgs e)
    {

    }
}

我尝试了一些解决方案,但没有奏效。任何帮助将不胜感激。

【问题讨论】:

    标签: c# sql-server


    【解决方案1】:
    cmd.CommandText = @"INSERT INTO your_table_name(Name, LtName, CompName, AdOne,
    AdTwo, City, ReionName, PostCode, CountryName, EmailAddr)
    Values(@Name, @LtName, @CompName, @AdOne, @AdTwo, @City, @ReionName, 
    @PostCode, @CountryName, @EmailAddr");
    
    cmd.Parameters.Add("@Name", txtName.Text);
    cmd.Parameters.Add("@LtName", LtName.Text);
    

    等等……

    【讨论】:

      【解决方案2】:

      这是插入语句还是更新语句? 至少,您应该在 sql 中使用用户参数... 但你也应该使用 using 语句

      【讨论】:

      • 它只是保存信息,所以是插入(我猜是因为我是 c# 的初学者)。下次重新加载页面时,我们可以再次添加数据。
      • 我不明白你问题的第二部分。你介意解释一下吗?
      • 你的桌子是什么样子的?
      • 它有一个数据类型的名称列并且允许为空。你是说这个?
      • 查看此链接...应该会有所帮助stackoverflow.com/questions/12241084/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      相关资源
      最近更新 更多