我的数据看起来像:
OrderID CustomerID ItemID ItemName
10000 1234 111111 Product A
10000 1234 222222 Product B
10000 1234 333333 Product C
20000 5678 111111 Product A
20000 5678 222222 Product B
20000 5678 333333 Product C
Run Code Online (Sandbox Code Playgroud)
我想在SQL Server中编写一个T-SQL查询来返回如下数据:
<Root>
<Order>
<OrderID>10000</OrderID>
<CustomerID>1234</CustomerID>
<LineItem>
<ItemID>11111</ItemId>
<ItemName>Product A</ItemName>
</LineItem>
<LineItem>
<ItemID>22222</ItemId>
<ItemName>Product B</ItemName>
</LineItem>
<LineItem>
<ItemID>33333</ItemId>
<ItemName>Product B</ItemName>
</LineItem>
</Order>
<Order>
<OrderID>20000</OrderID>
<CustomerID>5678</CustomerID>
<LineItem>
<ItemID>11111</ItemId>
<ItemName>Product A</ItemName>
</LineItem>
<LineItem>
<ItemID>22222</ItemId>
<ItemName>Product B</ItemName>
</LineItem>
<LineItem>
<ItemID>33333</ItemId>
<ItemName>Product B</ItemName>
</LineItem>
</Order>
</Root>
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法返回XML中的查询:
FOR XML …Run Code Online (Sandbox Code Playgroud) 我正在使用C#并尝试输出几行到ASCII文件.我遇到的问题是我的Linux主机看到这些文件:
ASCII text, with CRLF line terminators
Run Code Online (Sandbox Code Playgroud)
我需要这个文件只是:
ASCII text
Run Code Online (Sandbox Code Playgroud)
CRLF引起了一些问题,我希望在C#中有一种方法可以创建以我想要的方式格式化的文件.
我基本上使用这段代码:
string[] lines = { "Line1", "Line2" };
File.WriteAllLines(myOutputFile, lines, System.Text.Encoding.UTF8);
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法来创建没有CRLF行终止符的文件?我可以在Linux方面处理它,但宁愿从一开始就以适当的格式创建文件.
我有一个像这样的XML文档:
<magento_api>
<data_item>
<code>400</code>
<message>Attribute weight is not applicable for product type Configurable Product</message>
</data_item>
<data_item>
<code>400</code>
<message>Resource data pre-validation error.</message>
</data_item>
<data_item>
<code>1</code>
<message></message>
</data_item>
<data_item>
<code></code>
<message>No code was given</message>
</data_item>
</magento_api>
Run Code Online (Sandbox Code Playgroud)
我正在尝试迭代每个节点并执行以下操作:
我正在努力的部分是如何遍历每个节点并检查每个元素的空值.
我一直在http://rextester.com/runcode上测试这段代码,但似乎无法弄清楚:
Console.WriteLine("Querying tree loaded with XElement.Load");
Console.WriteLine("----");
XElement doc = XElement.Parse(@"<magento_api>
<data_item>
<code>400</code>
<message>Attribute weight is not applicable for product type Configurable Product</message>
</data_item>
<data_item>
<code>400</code>
<message>Resource data pre-validation error.</message>
</data_item>
<data_item>
<code>1</code>
<message></message>
</data_item>
<data_item>
<code></code>
<message>No code …Run Code Online (Sandbox Code Playgroud) 我有一些XML需要使用SQL Server 2008解析.我认为我接近得到我想要的东西,但我没有正确的语法(我相信).
我有以下内容:
DECLARE @doc XML
SET @doc = '<ROOT>
<InvoiceDetail>
<OrderId>1000000</OrderId>
<OrderTypeId>2</OrderTypeId>
<Id>2000</Id>
<InvoiceItems>
<InvoiceItem>
<LineId>1</LineId>
<Cd>123456</Cd>
<Description>Item 1</Description>
<Quantity>1</Quantity>
<UnitPrice>99.990000</UnitPrice>
</InvoiceItem>
<InvoiceItem>
<LineId>2</LineId>
<Cd>234567</Cd>
<Description>Item 2</Description>
<Quantity>1</Quantity>
<UnitPrice>89.990000</UnitPrice>
</InvoiceItem>
</InvoiceItems>
</InvoiceDetail>
<InvoiceDetail>
<OrderId>1200000</OrderId>
<OrderTypeId>1</OrderTypeId>
<Id>3000</Id>
<InvoiceItems>
<InvoiceItem>
<LineId>1</LineId>
<Cd>234567</Cd>
<Description>Item 2</Description>
<Quantity>1</Quantity>
<UnitPrice>89.990000</UnitPrice>
</InvoiceItem>
<InvoiceItem>
<LineId>2</LineId>
<Cd>345678</Cd>
<Description>Item 3</Description>
<Quantity>1</Quantity>
<UnitPrice>79.990000</UnitPrice>
</InvoiceItem>
</InvoiceItems>
</InvoiceDetail>
</ROOT>'
SELECT
Invoices.Node.value('@OrderId', 'VARCHAR(10)') 'OrderID'
, Invoices.Node.value('@Id', 'INT') 'InvoiceId'
, Items.Cd.value('.', 'VARCHAR(14)') 'ItemId'
FROM
@doc.nodes('//InvoiceDetail') Invoices(Node)
CROSS APPLY Invoices.Node.nodes('./InvoiceItems/InvoiceItem/Cd') Items(Cd)
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
NULL NULL …Run Code Online (Sandbox Code Playgroud) 当有一个空/ null属性(使用JSON.NET)时,我在反序列化JSON对象时遇到了一些麻烦,并希望有人可以指出我正确的方向.下面是我正在尝试的代码片段,并在dotnetfiddle进行测试
这是JSON的示例:
{
"`LCA0009": [],
"`LCA0001": {
"23225007190002": "1",
"23249206670003": "1",
"01365100070018": "5"
},
"`LCA0003": {
"23331406670018": "1",
"24942506670004": "1"
},
"`LCA0005": {
"01365100070018": "19"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用此代码:
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
public class Program
{
public static void Main()
{
string json = "{\"`LCA0009\": [], \"`LCA0001\": {\"23225007190002\": \"1\",\"23249206670003\": \"1\",\"01365100070018\": \"5\"},\"`LCA0003\": {\"23331406670018\": \"1\",\"24942506670004\": \"1\"},\"`LCA0005\": {\"01365100070018\": \"19\"}}";
Console.WriteLine(json);
Console.WriteLine();
Console.WriteLine("This works");
var root = JsonConvert.DeserializeObject(json);
Console.WriteLine(root);
Console.WriteLine("This doesn't work");
var root2 = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, int>>>(json);
Console.WriteLine(root2); …Run Code Online (Sandbox Code Playgroud) 我在SSIS中有一个C#脚本任务,我可以传递一个变量没问题.我在脚本中创建了另一个类,调用otherclass.cs.如何在otherclass.cs中使用变量?
我试着这样做:
_urlBase = Dts.Variables["User::URLBase"].Value.ToString();
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
The name 'Dts' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)
我对C#和类很陌生,所以我可能没有正确地提出这个问题.我甚至可能要问什么?
谢谢.
解
这是我试图完成的解决方案:
在ScriptMain.cs中创建了这样的新服务:
OtherService ws = new OtherService(Dts.Variables["User::URLBase"].Value.ToString());
Run Code Online (Sandbox Code Playgroud)
在OtherService.cs我有这个:
class OtherService
{
public OtherService(string urlBase)
{
_urlBase = urlBase;
//do other stuff
}
//other methods and stuff
}
Run Code Online (Sandbox Code Playgroud) 假设以下结构:
物品:
ItemId Price
----------------
1000 129.95
2000 49.95
3000 159.95
4000 12.95
Run Code Online (Sandbox Code Playgroud)
门槛:
PriceThreshold Reserve
------------------------
19.95 10
100 5
150 1
-- PriceThreshold is the minimum price for that threshold/level
Run Code Online (Sandbox Code Playgroud)
我正在使用SQL Server 2008根据商品价格在"PriceThreshold"之间的位置返回"预留".
例:
ItemId Reserve
1000 5
2000 10
3000 1
Run Code Online (Sandbox Code Playgroud)
- ItemId 4000的价格不高于最低价格阈值,因此应从结果中排除.
理想情况下,我希望能够使用一些直接的T-SQL,但是如果我需要创建一个存储过程来创建临时表来存储可能没问题的值.
现在已经很晚了,我认为我的大脑关闭了,所以任何帮助都会受到赞赏.
谢谢.
在bash中有没有办法理解传递给它的变量的名称?
例:
var1=file1.txt
err_var=errorfile.txt
function func1 {
echo "func1: name of the variable is: " $1
echo "func1: value of variable is: " $1
echo
if [ ! -e $var1 ]
then
$1 = $err_val #is this even possible?
fi
func2 $1
}
function func2 {
echo "func2: name of the variable is: " $1
echo "func2: value of variable is: " $1
echo
}
func1 $var1
func1 $err_var
Run Code Online (Sandbox Code Playgroud)
如果file1.txt存在,我希望得到以下输出:
func1: name of the variable is: var1
func1: value of …Run Code Online (Sandbox Code Playgroud) 我一直在使用中发现的OAuthBase类这里我SSIS 2008 C#脚本组件(.NET 3.5).
它一直运行良好,但最近我遇到了问题,如果我在同一个数据流任务中执行多个脚本组件,使用上面的OAuthBase类中的GenerateNonce方法,我最终得到相同的随机数(随机数).
以下是生成nonce的OAuthBase类的摘录:
using System;
using System.Security.Cryptography;
using System.Collections.Generic;
using System.Text;
using System.Web;
namespace OAuth {
public class OAuthBase {
....snip......
protected Random random = new Random();
public virtual string GenerateNonce() {
// Just a simple implementation of a random number between 123400 and 9999999
return random.Next(123400, 9999999).ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在每个脚本组件中,我使用此C#代码来启动类并生成一个nonce:
OAuthBase oAuth = new OAuthBase();
string nonce = oAuth.GenerateNonce();
Run Code Online (Sandbox Code Playgroud)
从我的搜索周围,我认为这与它不是线程安全有关?我不完全确定.
我只能在SSIS 2008中运行.NET 3.5,所以我知道在.NET 4.0中引入的一些我不能使用的新东西.
关于如何修改OAuthBase类和/或我的C#脚本组件代码的任何想法?
我有以下字符串变量,我想将其用作Regex.Replace中有效字符模式的一部分:
string unreservedChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.~";
string input = "gzaHQ6PKUgQjXP+/dajkl==";
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的(希望是一个班轮)来替换input不存在的字符unreservedChars?
我有一个SQL Server源表定义为:
sku store qty
20000 100 3
20000 132 1
20000 320 0
30000 243 2
30000 210 1
10000 410 5
Run Code Online (Sandbox Code Playgroud)
我需要输出为:
{
"skus": {
"20000": {
"100": 3,
"132": 1,
"320": 0
},
"30000": {
"243": "2",
"410": "1"
},
"10000": {
"410": "5"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我将源SQL Server表导入DataSet,然后使用JSON.NET来解析结果.我在想我应该创建某种类型的结构,其中sku有一个store/qty键/值对的列表,但我不完全确定这是否是正确的轨道.
c# ×6
sql-server ×4
json ×2
json.net ×2
ssis ×2
.net ×1
.net-3.5 ×1
bash ×1
file-io ×1
for-xml-path ×1
line-endings ×1
linq-to-xml ×1
linux ×1
regex ×1
sql ×1
xelement ×1
xpath ×1
xquery ×1