c# - 数据库中的值在文本框中不可见,请将值插入到正确的用户名中

标签 c# mysql database textbox sql-insert

到目前为止,这是我的代码:

protected void Button2_Click(object sender, EventArgs e)
        {
            using (SqlConnection scn = new SqlConnection("Data Source = 'PAULO'; Initial Catalog=ShoppingCartDB;Integrated Security =True"))
            {
                scn.Open();
                SqlCommand cmd = new SqlCommand(@"UPDATE UserData SET CreditRequest =
                     CAST(REPLACE(CreditRequest, ',', '') as int) 
                     FROM CreditRequests Where Username=@Username;
                     SELECT CreditRequest FROM UserData 
                     WHERE Username=@Username", scn);
                cmd.Parameters.Add("@Username", SqlDbType.NVarChar).Value = Session["New"];

                object value = cmd.ExecuteScalar();

                if (value != null)
                    txtCredit.Text = value.ToString();
            }
            }
        }

但是,当我查看数据库时,信用请求值正在被插入到数据库中并生成新的 ID,并且所有内容都是NULL

示例

ID NULL Username NULL Email NULL Contact NULL Creditrequest 5,000

有没有办法将信用请求值插入到正确的用户名中。我的代码中缺少什么?

另外,我希望信用请求值显示在我的文本框中,并且我相信是这行代码?

if (value != null)
    txtCredit.Text = value.ToString();

最佳答案

您正在调用添加新记录的 INSERT 语句。不,在末尾添加 WHERE 子句不会转换更新语句中的插入语句。

如果您想更新现有记录,则调用

 SqlCommand cmd = new SqlCommand(@"UPDATE UserData SET CreditRequest =
                     (SELECT CAST(REPLACE(c.CreditRequest, ',', '') as int) 
                     FROM CreditRequests c Where c.Username=@Username)", scn);

对于问题的第二部分,在此上下文中不可能获取 ExecuteScalar 的返回值,因为 UPDATE 不会选择任何要返回的记录。如果您想取回该值,您可以同时发出两个语句,并用分号将它们分隔开:

 SqlCommand cmd = new SqlCommand(@"UPDATE UserData SET CreditRequest =
                     (SELECT CAST(REPLACE(c.CreditRequest, ',', '') as int) 
                     FROM CreditRequests c Where c.Username=@Username);
                     SELECT CreditRequest FROM UserData u
                     WHERE u.Username=@Username", scn);

两条语句都将被执行,但 ExecuteScalar 将能够返回更新的 CreditRequest

关于c# - 数据库中的值在文本框中不可见,请将值插入到正确的用户名中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37547381/

相关文章:

MySQL:在 GROUP_CONCAT 中用 0 替换 null

mysql - 测验布局改进

php - MySQL数据库从服务器到客户端的传输

php - AngularJS 和 JSON 使用什么类型的数据库

音频和视频等大文件的数据库

mysql - LIMIT 显示不同的表字段

c# - 在 asp.net web 服务中调用自定义 WSDL (ASMX)

c# - 提取Word文档数据并插入SQL数据库

c# - Python 到 c# 减少函数理解

c# - 使用 Resharper 7 提取类