WPF编程textbox中文本存入数据库后值变了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF编程textbox中文本存入数据库后值变了相关的知识,希望对你有一定的参考价值。

如输入:“222”
存入数据库后变成:System.Windows.Controls.TextBox: 222 怎么回事,
我的SQL语句:" insert into [LibirarySummer].[dbo].[Book] values('" + BookNumber + "' ' )";
BookNumber为TextBox的名字。

你要的是textbox中的文本,而不是textbox控件本身,所以源代码改成下面的就可以了
" insert into [LibirarySummer].[dbo].[Book] values('" + BookNumber.text + "' ' )";追问

恩 就是这样了。还有个问题哦,我用dataGrid输出了表中数据,然后每条记录前面有个复选框,我有个删除操作,删除复选框为选中的记录项,请问具体可以怎么操作?

追答

有两个办法。

    复选框和你数据中的一个bool型元素绑定。勾选就是删除,绑定的元素为ture。你点击更新按钮的时候,可以遍历datagrid数据源,数据源只添加bool元素为false的项。

    直接通过checkbox的check或click操作从datagrid数据源直接增加或删减元素。checkbox的datacontext为你数据源的单个item实体。

两个方法都是更新数据源的,所以datagrid的Itemsource是重新赋值的

追问

  我的操作时这样的:
  LibirarySummerDataSet ds ;

  SqlDataAdapter sqladapter ;

  sqladapter.Fill(ds, "Book");
dgr.ItemsSource = ds.Tables["Book"].DefaultView;
  添加功能都是用Insert语句来插入数据,更新ds后可以改变数据库信息吗

追答

ds跟数据库是两个层面的事情啊。你ds更新后,可以再通过类似以上的语句去向数据库赋值。你上面的代码是从数据库读数据。你更新好ds后,是要向数据库写数据。

参考技术A 哪有这样用的。要么你用(this.FindName("BookNumber ") as TextBox).text
要么你在xaml那边绑定一个类里面叫BookNumber的属性,然后设置datacontext=this

以上是关于WPF编程textbox中文本存入数据库后值变了的主要内容,如果未能解决你的问题,请参考以下文章

WPF:如何以编程方式从 TextBox 中移除焦点

textbox文本显示不全wpf

el-table作为子组件tableHeight值变了,视图却没有更新

js前端页面值太长通过ajax传到后台值变了

更改 TextBox 文本时自动更改 DataGrid 中的数据(Xml 源)

WPF中textbox控件怎么设置初始的多行文本