C#绑定多个文本框数据库

我试图绑定文本框3一类的检索以前存储的任何记录,为每个3文本框。 我不知道如何从一个类的面向对象的角度获取3个不同的值。 我知道如何在同一时间返回一个字符串,bool等,增值经销商,但不超过1。

例如一个简单的布尔返回的方法我用,我怎么调整它返回3个独立的字符串变量 - 代码片段:

public static Boolean isQuestionnaireComplete(string strHash) { SqlConnection con = Sql.getConnection(); try { SqlCommand cmd = new SqlCommand("SELECT IsComplete FROM UserDetails WHERE Hash='" + strHash + "' AND IsComplete=1"); cmd.Connection = con; DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); con.Open(); da.Fill(dt); if (dt.Rows.Count == 0) { return false; } else { return true; } } catch { //TODO:log error return false; } finally { con.Close(); } }

ASPX段:

<asp:TextBox runat="server" ID="txt1" Height="200px" Width="600px"></asp:TextBox> <asp:TextBox runat="server" ID="txt2" Height="200px" Width="600px"></asp:TextBox> <asp:TextBox runat="server" ID="txt3" Height="200px" Width="600px"></asp:TextBox>

--------------解决方案-------------

您需要用3个值回你自己的结构。 你可以做一个数组,但你必须确保你知道哪些项目数组中的匹配与数据结构,你没有足够的文本框,要记住[0] ==第一个文本框,您可以使用友好的名称更多的可读性,更容易维护。

public static MyDataStructure isQuestionnaireComplete(string strHash)
{
SqlConnection con = Sql.getConnection();

try
{
SqlCommand cmd = new SqlCommand("SELECT IsComplete, FirstString, SecondString, ThridString FROM UserDetails WHERE Hash='" + strHash + "' AND IsComplete=1");
cmd.Connection = con;
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
con.Open();
da.Fill(dt);

if (dt.Rows.Count == 0)
{
return null;
}
else
{
// Populate object from data table
DataRow row = dt.Rows[0];

retun new MyDataStructure
{
MyFirstString = row["FirstString"],
MySecondString = row["SecondString"],
MyThirdString = row["ThridString"]
};
}
}
catch
{
//TODO:log error
return false;
}
finally
{
con.Close();
}
}

public class MyDataStructure
{
public string MyFirstString { get; set; }
public string MySecondString { get; set; }
public string MyThirdString { get; set; }
}

存储字符串的数据集或一个DataReader,然后将它们传递回你合适的层级。

那你想回来吗?

public static string[] ReturnStringArrayMethod()
{
string[] arrStr = new string[3]();
arrStr[0] = "first string";
arrStr[1] = "second string";
arrStr[2] = "third string";
return arrStr;
}

你可以做同样的类型,例如布尔[],INT []等你再从返回值访问项目使用

string val = arrStr[0];

我想前言本与我不太知道你正在努力做的事情。 是问卷总是3个问题? 或者是大小动态?

我会用一个Repeater ,如果大小是动态的(这是我提供的例子),或者我会用一个FormView ,如果尺寸固定为3。

使用下面的代码来访问数据库:

namespace BLL
{
using System;
using System.Data;
using System.Data.SqlClient;
[System.ComponentModel.DataObject]
public class QuestionnaireDataObject
{
public static DataTable isQuestionnaireComplete(string strHash1, string strHash2, string strHash3)
{
DataTable dt = new DataTable();
using (SqlConnection con = Sql.getConnection())
{
SqlCommand cmd =
new SqlCommand(
String.Format("SELECT Hash, IsComplete FROM UserDetails WHERE Hash IN ('{0}', '{1}', '{2}')",
strHash1, strHash2, strHash3));
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
da.Dispose();
}

return dt;
}
}
}

在你的代码后,你需要像下面这样:

<asp:Repeater id="Repeater1" runat="server" datasourceid="ObjectDataSource1">
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server" checked='<%# Bind("IsComplete") %>' /><asp:TextBox
id="TextBox1" runat="server" text='<%# Bind("Hash") %>'></asp:TextBox>
</ItemTemplate>
</asp:Repeater>
<asp:ObjectDataSource id="ObjectDataSource1" runat="server" selectmethod="isQuestionnaireComplete"
typename="Bll.QuestionnaireDataObject" onselecting="ObjectDataSource1_Selecting"></asp:ObjectDataSource>

然后在你的代码背后,你将需要选择方法来设置参数查询:

protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
e.InputParameters["strHash1"] = strHash1Value;
e.InputParameters["strHash2"] = strHash2Value;
e.InputParameters["strHash3"] = strHash3Value;
}

如果你说明情况多一点(什么都需要显示,以及所涉及的数据库逻辑),我将我的答案细化,尽可能满足您的需求。 我希望这是一个很好的起点。

分类:C# 时间:2012-01-01 人气:0
分享到:

相关文章

  • 如何禁用在ASP.Net的文本框的HTML编码? 2012-02-14

    我试图显示使用ASP.NET在文本框一些文字(多线). 但我发现,多行文本框(textarea的)的HTML编码,这意味着,当我想要显示: A> = B; & C 它会自动转换为: A> = B; &安培; C 这是不自然的人阅读. 那么,有没有我可以禁用这个自动HTML编码的行为,只是在文本框中显示它自然什么办法​​? --------------解决方案------------- 如果您在标记设置文本(的.aspx),然后说什么柏拉图是正确的:的.aspx在技术上是XML,

  • 如何验证一个Internet地址在ASP.NET MVC文本框 2012-04-03

    如何验证在ASP.NET MVC文本框状www.gmail.com或http://www.hotmail.com Internet地址? 我想实现jQuery的客户端验证. --------------解决方案------------- 如果你只是想分析它,看看一个Uri类. 我会建议使用jQuery的验证插件(其中有建立在URL验证规则)与ASP.NET MVC 2模型验证. 在这里,你可以看到如何在ASP.NET MVC中,它使用的DataAnnotations和jQuery验证插件的异步形

  • 如何添加在asp.net中富文本框 2014-03-05

    我需要添加丰富的文本框在asp.net在文本框中添加多行数据 --------------解决方案------------- 您可以使用此代码以下为多行文本框, <asp:TextBox id="txtBox" TextMode="multiline" runat="server" /> 您可以使用ASP:文本框,并设置属性文本模式="多行"行="2"采用多行文本框. 如果你真的需要一个丰富的文

  • ASP.NET格式文本框提示错误 2012-01-25

    进出口工作在一个Web应用程序在这里C#和我有一个列表视图. 当我在列表视图做一个编辑一切都很正常. 在我的笔记领域的一个文本框,我宁愿把它像一个RichTextBox较大,但是当我把在那里,我得到一个错误,不是标签或文本框等我似乎无法做任何事情. 我怎样才能使备注字段更像是一个丰富的文本框区域为最终用户编辑? 笔记: <asp:TextBox ID="NotesTextBox" runat="server" Text='<%# Bind("N

  • 验证一个ASP.Net的文本框为不为空,但允许空白? 2012-04-04

    我有一个ASP.Net 2.0文本框,我需要被验证为具有一些内容 ,但仅靠空白的地方是有效的输入. 有一个必填字段校验器似乎拒绝纯粹的空白输入为无效. 正则表达式验证,将不会触发所有的内容为空. 有没有一种简单的办法解决这比使用自定义验证控件? --------------解决方案------------- 有一对夫妇的选择,无论它们使用FUD AUTOMAGIC. 创建一个新的类型的验证器不修剪()校验之前 - 这是长杆,最耗费时间 使用JavaScript来验证和控制自己的回发(假设客户端验

  • ASP风格与文本框CSS 3如何正确输入声明 2012-04-22

    我正在开发一个asp网页表单,我发现了一个在线教程扩大选定的文本框,它只能与textarea的,但不与工作asp:textbox 这里是我想让它一起工作的声明asp:textbox .form1 input, .form1 textarea -moz-transition: padding .25s; -webkit-transition: padding .25s; -o-transition: padding .25s; transition: padding .25s; } -------

  • 如何使用JavaScript来得到一个ASP.NET的文本框控件的值 2012-06-08

    假设我有一个ASP.NET文本框,如下: <asp:TextBox ID="txtQuantity" runat="server" Text="0"></asp:TextBox> 我想在JavaScript这个框的当前值. 我如何可以访问这个元素? --------------解决方案------------- 使用ClientID属性 document.getElementByID('<%=txtQuantity.

  • 使用asp.net正则表达式文本框验证 2013-02-04

    我有一个文本框,并有权使用asp.net正则表达式 我的文字不应该允许在第一和最后一名的空间. 输出应该是: 有效: [India Bangalore] 无效: [ India Bangalore ] 即:用户可以在字之间,但不是在第一位置和最后位置输入空格. 如果你在JavaScript中的解决方案,也未尝不可. --------------解决方案------------- 试试这个请: ^[^\s].*[^\s]$ 它只是匹配输入其中:不要启动任何空格^[^\s]后跟任意字符甚至空格.*而

  • asp.net保存文本框的重定向 2013-06-23

    我是新来ASP.net,我试图以节省重定向一些文本框的状态. 我有明细的仪表板界面. 主仪表板页面有一个日期范围选项(文本框为起始日期和结束日期),用于显示的信息,我需要保存用户所选择的日期范围. 我知道,我可以把信息到一个会话变量中,我重定向到页面中使用,但是当我打了深入分析页面上的"返回"按钮返回到主仪表盘页面和文本框的值丢失. 我ahve还试图保存视图状态,但不能得到这工作的. 什么是解决这个问题的最好方法吗? 编辑:如果它的事项,我其实使用jQuery $(location).

  • 将复选框选中的值在asp.net到文本框? 2013-07-25

    我在网络表单5 asp.net复选框......我想作为复选框选中和未选中那么它的文本将在文本框,即可以添加,如果复选框1和checkbox9将被检查,然后在文本框中的文本将是1,9,如果checkbox1的勾选,那么文本框的文本将是9 如何做到这一点使用JavaScript,vb.net或jQuery的 我没有任何想法如何做到这一点? CODE我发现: <script type="text/javascript"> function Test(control, value

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.603 (s). 10 q(s)