无法引用textBox值

时间:2018-01-15 13:52:32

标签: c# sql

我试图建立一个非常基本的SQL连接(我是初学者)。 在我的SQL命令的参数中添加值时,它似乎没有获取我试图引用的值。我在这做错了什么?

代码:

namespace SQLTest3
{
    public partial class Form1 : Form
    {
    SqlConnection myConnection = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\Waffl\\Desktop\\C#\\SQL\\SQLTest3\\SQLTest3\\sqltest3db.mdf;Integrated Security=True");
    DataSet dataSet = new DataSet();
    SqlDataAdapter commands = new SqlDataAdapter();

    public Form1()
    {
        InitializeComponent();
    }

    private void insertBtn_Click(object sender, EventArgs e)
    {
        string userInput = userBox.Text.ToString();
        string passInput = passBox.Text.ToString();

        commands.InsertCommand = new SqlCommand("INSERT INTO Accounts (userName, password) VALUES (@user, @pass)", myConnection);
        commands.InsertCommand.Parameters.Add("@user", SqlDbType.VarChar).Value = userInput;
        commands.InsertCommand.Parameters.Add("@pass", SqlDbType.VarChar).Value = passInput;
        if (userInput != "" && passInput != "")
        {
            try
            {
                myConnection.Open();
                commands.InsertCommand.ExecuteNonQuery();
                MessageBox.Show("Account created!");

            }
            catch (OleDbException ex)
            {
               MessageBox.Show(ex.Message);
            }
            finally
            {
                myConnection.Close();
            }
        }
        else
        {
            MessageBox.Show("Please enter a username&password.");
        }

这是我似乎得到的错误:

System.Data.SqlClient.SqlException:'无法将值NULL插入列' Id',table' C:\ USERS \ WAFFL \ DESKTOP \ C#\ SQL \ SQLTEST3 \ SQLTEST3 \ SQLTEST3DB.MDF.dbo.Accounts&#39 ;;列不允许空值。 INSERT失败。 该声明已被终止。'

为什么不是@user& @pass参数等于userInput和passInput?

2 个答案:

答案 0 :(得分:0)

你有2个元素

1

string userInput = userBox.Text.ToString();
string passInput = passBox.Text.ToString();

“为什么@user& @pass参数不等于userInput和passInput?”

你最后不需要ToString(),它已经是一个字符串。

2

你的错误很清楚。

'Cannot insert the value NULL into column 'Id'

您已经定义了一个列ID,该ID不能为空,但也不是自填充的,因此您无法保存数据,因为它不符合条件。

答案 1 :(得分:0)

您传递的是两个参数,而您的表格还有一列 ID 。那个你没有通过。你可以用两种方式解决这个问题。

  1. 传递ID参数,就像您已经为其他人做过的那样。
  2. 打开表设计器 - >转到ID - >属性 - >设置IsIdentity =是。enter image description here