WPF之新增

博客介绍了新增数据时获取下拉框、文本框、日期框值的方式,强调数据库新增字段要与客户端字段一致。给出服务层固定写法示例,展示了新增旅客资料的代码。最后说明更新客户端对应服务时,实例化服务后调用服务,参数需保持一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

新增数据:要获取下拉框、文本框、日期。这三种的值:

 下拉框获取方式:下拉框的Name值.SelectedValue

 文本框获取方式: 文本框的Name值.Text

 日期框获取方式:密码框的Name值.Text.ToString

然后去看数据库SQL的新增语句

数据库新增字段要和客户端的字段保持一致。

然后去服务层是固定写法,都是有SQL多少参数,你就要写多少参数。

//OperationContract(操作契约)是WCF契约的类型

[OperationContract]

#region 新增旅客资料

public int btn_Affirm_Click_InsertTraveller(int intas_certificate_type_id, int intuser_id, int intas_passenger_type_id,string struser_name, int intas_gender_id, DateTime date_of_birth, string strage, string strcountry_or_region,string strcertificate_number, string strphone_number, string stremergency_phone, string straddress, string stremergency_address,string strzip_code, DateTime register_date)

   {

     SqlParameter[] SQLCMDpas ={

            new  SqlParameter ("@Type",SqlDbType.Char),

            new  SqlParameter ("@as_certificate_type_id",SqlDbType.Int),

            new  SqlParameter ("@user_id",SqlDbType.Int),

            new  SqlParameter ("@as_passenger_type_id",SqlDbType.Int),

            new  SqlParameter ("@user_name",SqlDbType.Char),

            new  SqlParameter ("@as_gender_id",SqlDbType.Int),

             new  SqlParameter ("@date_of_birth",SqlDbType.DateTime),

            new  SqlParameter ("@age",SqlDbType.Char),

            new  SqlParameter ("@country_or_region",SqlDbType.Char),

            new  SqlParameter ("@certificate_number",SqlDbType.Char),

            new  SqlParameter ("@phone_number",SqlDbType.Char),

            new  SqlParameter ("@emergency_phone",SqlDbType.Char),

            new  SqlParameter ("@address",SqlDbType.Char),

            new  SqlParameter ("@emergency_address",SqlDbType.Char),

            new  SqlParameter ("@zip_code",SqlDbType.Char),

            new  SqlParameter ("@register_date",SqlDbType.DateTime),

};

            SQLCMDpas[0].Value = "btn_Affirm_Click_InsertTraveller";

            SQLCMDpas[1].Value = intas_certificate_type_id;

            SQLCMDpas[2].Value = intuser_id;

            SQLCMDpas[3].Value = intas_passenger_type_id;

            SQLCMDpas[4].Value = struser_name;

            SQLCMDpas[5].Value = intas_gender_id;

            SQLCMDpas[6].Value = date_of_birth;

            SQLCMDpas[7].Value = strage;

            SQLCMDpas[8].Value = strcountry_or_region;

            SQLCMDpas[9].Value = strcertificate_number;

            SQLCMDpas[10].Value = strphone_number;

            SQLCMDpas[11].Value = stremergency_phone;

            SQLCMDpas[12].Value = straddress;

            SQLCMDpas[13].Value = stremergency_address;

            SQLCMDpas[14].Value = strzip_code;

            SQLCMDpas[15].Value = register_date;

            int count = myDALMethod.UpdateData("FRM_TravellerInformation", SQLCMDpas);

            return count;

        }

        #endregion

然后要更新客户端的对应服务:实例化服务之后,调用服务:

int count = myClient.btn_Affirm_Click_InsertTraveller(intas_certificate_type_id,intuser_id, intas_passenger_type_id, struser_name, intas_gender_id, date_of_birth, strage,strcountry_or_region, strcertificate_number, strphone_number, stremergency_phone, straddress,stremergency_address, strzip_code, register_date);

参数要一模一样。

### 如何在 WPF DataGrid 中添加新数据 #### 创建绑定的数据源 为了能够动态地向 `DataGrid` 添加新的记录,通常会创建一个可观察集合作为数据源。此集合允许界面实时反映任何更改。 ```csharp public partial class MainWindow : Window { public ObservableCollection<Person> People { get; set; } public MainWindow() { InitializeComponent(); People = new ObservableCollection<Person> { new Person { FirstName="John", LastName="Doe"}, new Person { FirstName="Jane", LastName="Smith"} }; this.DataContext = this; } } ``` 此处定义了一个名为 `People` 的属性来保存人员列表,并将其设置为窗口的数据上下文[^1]。 #### 定义模型类 对于每条要显示的信息项,应该有一个对应的 C# 类表示该实体。这里假设正在处理的是一个人名表单: ```csharp public class Person { public string FirstName { get; set; } public string LastName { get; set; } } ``` 这个简单的 `Person` 类包含了两个公共字符串类型的属性用于存储名字和姓氏。 #### XAML布局配置 接下来,在XAML文件里声明 `DataGrid` 控件并指定其 ItemsSource 属性指向之前提到过的 `ObservableCollection<Person>` 集合: ```xml <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding People}"> <DataGrid.Columns> <DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" /> <DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" /> </DataGrid.Columns> </DataGrid> ``` 通过这种方式,当往 `People` 集合中增加或移除对象实例时,这些变化都会自动同步到界面上呈现给用户查看。 #### 实现添加逻辑 最后一步是在代码背后编写函数用来接收输入参数并将它们封装成一个新的 `Person` 对象加入到现有的 `People` 列表当中去: ```csharp private void AddNewRecord(string firstName, string lastName) { var person = new Person {FirstName=firstName, LastName=lastName}; People.Add(person); } ``` 调用上述方法即可完成一条全新记录的插入操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值