小编Gor*_*onB的帖子

使用SQL Server XML数据类型

我有一个有XML字段的表.它包含的典型XML是;

<things>
  <Fruit>
    <imageId>39</imageId>
    <title>Apple</title>
  </Fruit>
  <Fruit>
    <imageId>55</imageId>
    <title>Pear</title>
  </Fruit>
  <Fruit>
    <imageId>76</imageId>
    <title>Grape</title>
  </Fruit>
</things>
Run Code Online (Sandbox Code Playgroud)

在我的表中,我有大约50行,我只关心两个字段,omId(int主键)和omText(我的xml数据).

我想要实现的是一种说法,在整个表格中的所有xml数据中...给我所有标题为X的xmlElements.或者给我一个使用imageId为55的所有项目的计数.

我正在使用XML数据类型VALUE和QUERY函数来检索数据.

   select omID,
   omText.query('/things/Fruit')
   ,cast('<results>' + cast(omText.query('/things/Fruit') as varchar(max)) + '</results>' as xml) as Value
   from dbo.myTable
   where omText.value('(/things/Fruit/imageId)[1]', 'int') = 76
Run Code Online (Sandbox Code Playgroud)

这只适用于我正在搜索的id是文档中的第一个.它似乎没有搜索所有的xml.

从根本上说,结果集为TABLE中的每个条目返回一行,我认为我需要为每个匹配的ELEMENT设置一行...不完全确定如何开始为此编写分组.

我开始觉得我正在努力使它变得更难......想法和想法请.

xml sql xpath sql-server-2005

9
推荐指数
1
解决办法
2万
查看次数

如何在.net实体框架中插入或更新多个表

这似乎应该是非常明显的,但实体框架的一些东西让我感到困惑,我无法让它工作.

很简单,我有三个表,Id值是标识列:Users(userId,username)Categories(categoryId,categoryName)JoinTable(UserId,CategoryId)composite.

在实体设计器(这是.net 4.0)中,当我导入这些表时,正如预期的那样,连接表不会出现,但用户和类别显示关系.以下代码:

var _context = new MyContext();
var myUser = new User();
myUser.UserName = "joe";

var myCategory = new Category();
myCategory.CategoryName = "friends";

_context.Users.AddObject(myUser);  
myUser.Categories.Add(myCategory);

var saved = _context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

返回错误(尽管没有添加到数据库中):

An item with the same key has already been added.
Run Code Online (Sandbox Code Playgroud)

如果我在保存之前添加以下内容:

_context.Categories.AddObject(myCategory);
myCategory.Users.Add(myUser);
Run Code Online (Sandbox Code Playgroud)

我得到相同的错误,并没有保存到数据库.如果我在尝试关联它们之前保存myUser和myCategory对象,它们都会保存,但是第二次保存会抛出错误,而没有添加到连接表中:

Cannot insert the value NULL into column 'UserId', table '...dbo.JoinTable'; column does not  allow nulls. INSERT fails. The statement has been terminated.
Run Code Online (Sandbox Code Playgroud)

我显然无法理解插入了多少个关系.我错过了什么?

many-to-many entity-framework insert entity-framework-4

5
推荐指数
1
解决办法
5944
查看次数

使用jquery访问webmethod

我目前正在使用jquery ajax来调用pagemethod(效果很好);

$.ajax({
          type: "POST",
          url: "ArticleList.aspx/GetArticleTags",
          data: "{'articleId' : " + articleId + "}",
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (msg) {
            if (msg.hasOwnProperty("d")) { msg = msg.d; }
            var tags = JSON.parse(msg);
            //do something
          }
        });
Run Code Online (Sandbox Code Playgroud)

页面方法;

  <WebMethod()>
  Public Shared Function GetArticleTags(ByVal articleId As Integer) As String
    Using myDb As New MyRepository
      Dim js As New JavaScriptSerializer
      Dim returnString = js.Serialize((From t In myDb.GetArticleTags(articleId) Select t.TagId, t.Tag).ToList)
      Return returnString
    End Using
  End Function
Run Code Online (Sandbox Code Playgroud)

我现在处于这个位置,我需要从多个页面访问我的GetArticleTags函数.为了快速启动并运行,我可以

  1. 将该函数复制到我的新aspx页面,并以相同的方式调用它.
  2. 继续指向原始的aspx页面.

两者都很垃圾. …

vb.net ajax wcf webforms .net-4.0

5
推荐指数
1
解决办法
2995
查看次数

跨WCF Web服务请求序列化通用XML数据

我有一个Web应用程序,它向WCF服务发送请求.WCF服务获取LINQ结果集(anon.ilist)并将其作为回复发送回Web应用程序.为了让它快速运行,在WCF应用程序中,我正在使用copytodatatable并将其发送到我在DataSet中的Web应用程序.

我的Web应用程序然后获取DataSet并将其写入xml,执行一些xslt并在屏幕上显示结果数据.完善.......好吧,不是真的.

我仍然(相对)是WCF的新手.我知道发送DataTables/DataSet有点麻烦.Web应用程序需要xml格式的数据(对于xslt操作),所以我想我会得到WCF Web服务来为我做DataTable - > xml工作,并简单地用一个漂亮的XmlDocument回复到客户端webapp.
但是,无法序列化XmlDocument.

通过wcf将XML数据发送到客户端的最佳方法是什么?

  • 数据表包含很多列,并且会频繁更改,因此我不想创建自己的对象类(具有类似bazillion属性)并发送它(因为这是我以前在大多数时间所做的事情) wcf,它运行良好......但不适合这种情况).

  • 编辑:发送它作为一个字符串工作也....但这肯定不是最好的解决方案?

xml vb.net wcf dataset

4
推荐指数
1
解决办法
8885
查看次数

将json数组反序列化为.net类

我在反序列化一些json数据,获取InvalidCastExceptions等方面遇到了问题.

谁能指出我正确的方向?

这是我想要反序列化的json;

[{ "的OrderId":0, "名称": "摘要", "MAXLEN": "200"},{ "的OrderId":1, "名称": "详细信息", "MAXLEN": "0"}]

这是我的代码;

  Public Class jsTextArea
    Public OrderId As Integer
    Public Name As String
    Public MaxLen As String
  End Class

Dim js As New System.Web.Script.Serialization.JavaScriptSerializer
Dim rawdata = js.DeserializeObject(textAreaJson)
Dim lstTextAreas As List(Of jsTextArea) = CType(rawdata, List(Of jsTextArea))
Run Code Online (Sandbox Code Playgroud)

vb.net serialization json

4
推荐指数
1
解决办法
2万
查看次数

提示并阻止用户导航/关闭页面

根据StackOverflow在添加问题或回复问题时如何执行此操作;

我想用一个提示用户;

"Are you sure you want to navigate away from this page"
"Press OK to continue or Cancel to stay on this page"
Run Code Online (Sandbox Code Playgroud)

我已经尝试过在互联网上找到的几个js片段,但没有什么可以减少芥末.

javascript

4
推荐指数
1
解决办法
6433
查看次数

集合的MVC Dataannotation验证规则?

是否有基于集合的属性的数据注释验证规则?

我有以下内容

  <DisplayName("Category")>
  <Range(1, Integer.MaxValue, ErrorMessage:="Please select a category")>
  Property CategoryId As Integer

  <DisplayName("Technical Services")>
  Property TechnicalServices As List(Of Integer)
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个验证器,我可以添加到TechnicalServices属性来设置集合大小的最小值.

vb.net validation data-annotations asp.net-mvc-2

4
推荐指数
1
解决办法
2513
查看次数

数据表不知道它的主键

我正在尝试通过查询每列自动增量属性来查询数据表以建立主键[标识列].然而它总是假的(对于Idenity/PK的列).

查询表主键集合显示数据表不认为它具有PK.

  Dim dc As DataColumn() = dt.PrimaryKey
  Debug.WriteLine(dc.Count)  'Result is 0
Run Code Online (Sandbox Code Playgroud)

数据表正在填充.......

Using cn As SqlConnection = MyApp.GetConnection
  Using cmd As New SqlCommand(strSQL, cn)
    Using da As New SqlDataAdapter(cmd)
      Dim ds As New DataSet
      Try
        da.Fill(ds)

        Return ds

      Catch ex As Exception
        MyAppClass.LogWarning(ex, EventLogEntryType.Error)
        Throw
      End Try
    End Using 
  End Using 
End Using
Run Code Online (Sandbox Code Playgroud)

有问题的表的主键是:([myTableId] [int] IDENTITY(1,1)NOT NULL).和它的pk:CONSTRAINT [PK_myTablesPK] PRIMARY KEY CLUSTERED([myTableId] ASC)

这里有人有同样的问题(可能比我写的更清楚):http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/c6abdeef-0cb0-42f5-a5f1-10dc4d81df4a/

我假设它很简单,我想念,有人关心开导我吗?

vb.net ado.net

3
推荐指数
1
解决办法
5661
查看次数

Azure自定义域未被接受(awverify cname)

我在Azure网站上设置自定义域时遇到问题.天蓝色的网站是http://gbyers.azurewebsites.net我拥有的自定义域名是http://gordon.byers.me

我已经设置了cname,所以Azure可以验证我拥有域名.这是dns设置的样子.

awverify.byers.me@8.8.4.4 (Default):
awverify.byers.me.  13871   IN  CNAME   awverify.gbyers.azurewebsites.net.
azurewebsites.net.  1271    IN  SOA prd1.azuredns-cloud.net. msnhst.microsoft.com.azurewebsites.net. 2031967751 900 300 604800 3600

awverify.gordon.byers.me@8.8.4.4 (Default):
awverify.gordon.byers.me. 14364 IN  CNAME   awverify.gbyers.azurewebsites.net.
azurewebsites.net.  1799    IN  SOA prd1.azuredns-cloud.net. msnhst.microsoft.com.azurewebsites.net. 2031968612 900 300 604800 3600

awverify.www.byers.me@8.8.4.4 (Default):
awverify.www.byers.me.  13871   IN  CNAME   awverify.gbyers.azurewebsites.net.
azurewebsites.net.  1799    IN  SOA prd1.azuredns-cloud.net. msnhst.microsoft.com.azurewebsites.net. 2031968612 900 300 604800 3600
Run Code Online (Sandbox Code Playgroud)

链接到挖dns

这对我来说都很好看.

但Azure给了我以下错误;

无法找到指向'gbyers.azurewebsites.net'的'gordon.byers.me'的DNS记录.如果要配置A记录,则必须首先使用DNS提供程序为"awverify.gordon.byers.me"创建一个CNAME记录,该记录指向"awverify.gbyers.azurewebsites.net".首先允许传播资源记录,然后创建A记录.

我在大约16小时前创建了CNAME记录,我知道DNS A记录有时会花费他们的时间来过期/传播..但CNAME上的TTL通常很低.

任何人对我有任何好主意,或者我应该等待48小时并且不再那么不耐烦?

dns azure azure-web-sites

3
推荐指数
1
解决办法
4214
查看次数

Linq返回匿名类型列表

Caan somone建议我尝试实现的最佳方法(linq to sql,返回数据列表以显示在网格/列表等等)...它抱怨匿名类型转换,并从我正在阅读,那不是优雅的做法.

  Public Function GetHistory(ByVal historyId As Integer) As List(Of ?????????)
    Using dc As New myDataContext(Application.GetConnection)
      Return (From t In dc.ActionTypes, a In t.MyTable Where a.HistoryID = historyId Select a.ActionOn, a.ActionBy, t.Description, a.ImpactedItem, a.ActionDescription).ToList
    End Using
  End Function
Run Code Online (Sandbox Code Playgroud)

linq vb.net asp.net anonymous-types linq-to-sql

2
推荐指数
1
解决办法
1万
查看次数

带有Linq语句的XML Literal

我将执行XSLT转换,将XML转换为HTML表.这是表格数据,所以这就是我不使用div的原因.;)

无论如何,我需要重复XSLT的一部分,以获得我的一个集合的大小.这是代码的片段......

Dim styleSheet = <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
  xmlns:rh="ReportHub"
  exclude-result-prefixes="msxsl"
>
  <xsl:output method="html" indent="yes" />
  <xsl:template match="rh:Report/rh:Tablix1/rh:Details_Collection">
    <xsl:variable name="alternating-row" select="position() mod 2" />
    <table class=<%= dataFormatter.formattingTableClass %>>
      <xsl:choose>
        <xsl:when test="count(rh:Details)=0">
          <tr>
            <td>There are no items listed for this client</td>
          </tr>
        </xsl:when>
        <xsl:otherwise>
          <xsl:for-each select="rh:Details">
            <tr class=<%= dataFormatter.formattingTRClass %>>
              <xsl:variable name="mainrow-position" select="position()" />
              <xsl:for-each select="@*">
                <%= From x In dataFormatter.dataColumnSettings Select 
                  <xsl:if test="name() != 'colName'">
                    <xsl:choose>
                      <xsl:when test="$mainrow-position=1">
                        <th>
                          <xsl:value-of select="name()"/>
                        </th>
                      </xsl:when>
                      <xsl:otherwise>
                        <td>
                          <xsl:value-of select="."/> …
Run Code Online (Sandbox Code Playgroud)

linq vb.net xslt xml-literals

2
推荐指数
1
解决办法
1076
查看次数

如何将任意字符串列表转换为SQL行集?

我有一个简单的字符串列表,可能是任意长度.我希望能够使用这个字符串列表,因为我会使用行集.有问题的应用程序正在针对SQL Server运行.

更清楚一点,如果我这样做,SELECT 'foo', 'bar', 'baz'我会把'foo','bar'和'baz'作为一行中的字段.我想将它们中的每一个看作一个单独的行.

是否存在我缺少的SQL(或SQLServer特定的)函数或技术,或者我将不得不求助于使用外部脚本语言编写函数?

sql t-sql sql-server

1
推荐指数
1
解决办法
1249
查看次数

写这个的更好方法是:增长数组

之前正在查看一些代码,并且我认为必须有更优雅的方式来编写这个....

(returnVar.Warnings是一个字符串数组,它可以以任何大小返回,具体取决于记录的警告数)

For Each item In items
  If o.ImageContent.ImageId = 0 Then
    ReDim Preserve returnVar.Warnings(returnVar.Warnings.GetUpperBound(0) + 1)
    returnVar.Warnings(returnVar.Warnings.GetUpperBound(0)) = "Section: " & section.<header>.<title>.ToString & " , Item: " & item.<title>.ToString
  End If
Next
Run Code Online (Sandbox Code Playgroud)

vb.net arrays loops

0
推荐指数
1
解决办法
809
查看次数