【问题标题】:Member's books in possession in Library System图书馆系统所拥有的会员书籍
【发布时间】:2020-03-24 04:37:34
【问题描述】:

您好,我目前正在研究图书馆系统,我确实想查看特定成员拥有多少本书。

每当我向学生发行一本书时,我都想为他们添加一份副本。

我试过了:

public void StudentPossession()
    {
        cm = new SqlCommand("INSERT INTO tblStudent(stCopies) VALUES (@stCopies)", cn);
        cm.Parameters.AddWithValue("@stCopies", txtCopies.Text);
        cm.ExecuteNonQuery();
    }

但它不会插入成员行,而是显示

|-------------|---------------|------------|
|   ID        |  studNumber   |  Copies    |
|-------------|---------------|------------|
|   1         |  34543534     |    NULL    |
|-------------|---------------|------------|
|   2         |  NULL         |    1       |
|-------------|---------------|------------|

我也试过了:

cm = new SqlCommand("INSERT INTO tblStudent(stCopies) VALUES (@stCopies) WHERE studNumber ='" + txtStudNumber.Text + "'", cn);

但也不行。

我不知道如何解决此问题,因此我们将不胜感激。或者有什么方法可以做到这一点?

【问题讨论】:

  • 如果您只为stCopies 传递一个值,为什么您期望studNumber 被填充?你认为studNumber 来自哪里?
  • @John 我怎样才能将值传递给我的 studNumber 或条件,以便将其插入到学生的行中?
  • 您要插入新行还是更新现有行?
  • “我忘了说我已经为学生行设置了值” - 我没有关注?你说你正在插入新记录,所以你没有当前 studNumber 的学生行,对吗?如果术语出现问题:数据库表中的一行就是一条记录。
  • I [suck] at explaining 好吧,好消息是计算机的脾气特别好。

标签: c# sql ado.net


【解决方案1】:

如果要插入新记录:

cm = new SqlCommand("INSERT INTO tblStudent (studNumber, stCopies) VALUES (@studNumber, @stCopies)", cn);
cm.Parameters.AddWithValue("@stCopies", txtCopies.Text);
cm.Parameters.AddWithValue("@studNumber", txtStudNumber.Text);
cm.ExecuteNonQuery();

如果您想更新现有记录,而不是插入新记录,请使用以下代码:

cm = new SqlCommand("UPDATE tblStudent SET stCopies = @stCopies WHERE studNumber = @studNumber", cn);
cm.Parameters.AddWithValue("@stCopies", txtCopies.Text);
cm.Parameters.AddWithValue("@studNumber", txtStudNumber.Text);
cm.ExecuteNonQuery();

另外,使用 AddWithValue 表示字符串是 not recommended。相反,您应该像这样准备值:

cmd.Parameters.Add("@studNumber", SqlDbType.VarChar, 30).Value= txtStudNumber.Text;

其中VarChar是数据库中字段的类型,30是数据库中字段的最大长度。从这段代码中,我希望看到VARCHAR(30)

【讨论】:

    猜你喜欢
    • 2015-05-27
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2019-05-22
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    相关资源
    最近更新 更多