【问题标题】:Datatype for submit to database提交到数据库的数据类型
【发布时间】:2012-04-23 19:42:51
【问题描述】:

我正在通过 WCF 服务将文本框和复选框的内容发送到我的数据库。

到目前为止,我有

  • fNameTxtBox.Text, - 字符串
  • (DateTime) BirthDate.Value, - System.DateTime
  • toggle1.IsChecked, - bool

但是如果数据类型是 int 会发生什么?

不幸的是,自动完成功能对我没有帮助,当然它也不接受 .Text 作为结尾。

有人能帮我看看这是什么吗?

编辑:

这是我想要完成的完整声明。我正在寻找 ownerTextBox 的结尾,当源是 WP7 应用程序上的文本框时,该方法要求它是一个 int:

    private void addAccountBtn_Click(object sender, RoutedEventArgs e)
    {
    _ServiceClient.AddDriverAsync(fnameTxtBox.Text, snameTxtBox.Text, (DateTime)BirthDate.Value, phonemobNumBox.Text, toggle1.IsChecked, toggle2.IsChecked, toggle3.IsChecked, toggle4.IsChecked, toggle5.IsChecked, toggle6.IsChecked, toggle7.IsChecked, toggle8.IsChecked, toggle9.IsChecked, toggle10.IsChecked, toggle11.IsChecked, toggle12.IsChecked, toggle13.IsChecked, toggle14.IsChecked, toggle15.IsChecked, ownerTextBox.????);
    }

即替换 ????使用正确的结尾,或重新格式化该部分以使其正常工作。

【问题讨论】:

  • What have you tried? 你的实际问题是什么?
  • 我认为你必须使用 System.Data.SqlTypes 命名空间来指定类型
  • 是什么样的图形用户界面? ASP.NET Web 窗体? ASP.NET MVC?表格? WPF?银光?请适当标记。
  • 适用于 Windows Phone 7 应用程序

标签: c# wcf windows-phone-7


【解决方案1】:

您需要在客户端上执行验证,以确保永远不会向您的服务发送无效值。您可以通过检查该值是否为整数来执行此操作,如果不是则显示一条消息。仅当满足验证条件时才将数据发送到您的服务。

public void OnButtonClick(object sender, EventArgs e) {
    int value;

    bool isValid = int.TryParse(textBox.Text, out value);

    if (isValid) {
        // send to WCF
    }
    else {
        // display a message
    }
}

【讨论】:

    【解决方案2】:

    您需要使用 int 类解析值,例如

    int.Parse(myTextBox.Text)
    

    请注意,如果值不能表示为整数,int.Parse 将引发异常,因此您可能需要执行适当的验证或异常处理。查看TryParse 系列方法。

    您可能会发现阅读Casting, Type Conversion, and Parsing 很有用。

    使用您发布的源代码,您可以将其更改为:

    private void addAccountBtn_Click(object sender, RoutedEventArgs e)
    {
        _ServiceClient.AddDriverAsync(
            fnameTxtBox.Text, <snip_lots_of_arguments>, 
            toggle15.IsChecked, 
            int.Parse(ownerTextBox.Text)); //I've only changed the very last bit here
    }
    

    【讨论】:

    • 嗯,添加之后,我所有的 checkBox.IsChecked 都会抛出一个参数:无法从 'bool?' 转换'布尔'。在我添加之前没有那个错误并且复选框有效
    • 请查看我的编辑 - 您应该只在 int 的特定参数上使用 int.Parse。请注意,这听起来像是一个不相关的问题,您有一个可为空的布尔值。尝试在这个上使用&lt;argument&gt;.Value
    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 2021-12-14
    • 2019-01-19
    • 1970-01-01
    • 2012-12-15
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多