【发布时间】:2019-03-22 18:52:48
【问题描述】:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
namespace todoassignment1
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Visible = false;
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string valueUser = txtUsername.Text;
SqlConnection db = new SqlConnection(SqlDataSource1.ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
//User is the name of the table, UserName is the column
cmd.CommandText = "INSERT User (UserName) VALUES ('" + valueUser + "')";
cmd.Connection = db;
db.Open();
try
{
cmd.Connection.Open();
cmd.ExecuteNonQuery();
Label1.Text = "Success writing into database!";
Label1.Visible = true;
}
catch (Exception ex)
{
Label1.Text = "Error writing into database.";
Console.WriteLine(ex.Message);
Label1.Visible = true;
}
finally
{
db.Close();
}
}
}
}
我在 Default.aspx 页面上添加了 SqlDataSource1,这似乎是成功的,因为我可以在 gridview 中看到 User 表的列名。该表是空的,我要做的就是在文本框中输入输入并将其发送到 UserName 列。 我不是很擅长调试,但我注意到一些我花了几个小时研究的错误。 我尝试过的事情:
- SQL SMS > 工具 > 选项 > 设计器 > CHECK 防止保存需要重新创建表的更改
- 使用 System.Data 添加;
- 添加了 cmd.Connection.Open();
- 在 catch 语句中添加了要捕获的异常
- 重新创建整个数据库
- 四重检查诸如 txtUsername 是正确的文本框 ID 等内容
- 一遍遍重新配置SqlDataSource1,删除再重新创建
- 确认web.config中的connectionString正确
-
使用 web.config 中的确切字符串创建新的 SQLConnection
SqlConnection db = new SqlConnection("Data Source=NAME-PC\\SQLEXPRESS;Initial Catalog=Assignment;Integrated Security=True"); 将插入行从串联更改为“INSERT User (UserName) VALUES ('asdf')”以简化代码,但仍然不起作用。
-
尝试了其他语法
cmd.CommandText = "INSERT INTO User (UserName) VALUES (@username)"; cmd.Parameters.Add("@username", SqlDbType.NVarChar, 50); cmd.Parameters["@username"].Value = txtUsername.Text.ToString();
来自调试器的线索:
- 在 autos 中挖掘 cmd 时看到几个“System.InvalidCastExceptions”
errorCS0103:当前上下文中不存在名称“ExecuteNonQuery”
运行后总是看到 System.InvalidOperationException
请帮忙。
【问题讨论】:
标签: c# sql asp.net sql-server-2012 visual-studio-2017