我在 SQL Server 中有一个存储过程,它返回七个结果集。我想从 ASP.NET 调用此存储过程,并使用结果填充 ASP.NET 页面上的七个 GridView。我正在使用 SqlDataReader 来获取数据,但是我正在努力使用 C# 代码来填充 GridView。
我创建了一个 DAL 类来获取数据,其中有这个方法:
public SqlDataReader CheckDataIntegrity()
{
SqlCommand cmd = new SqlCommand("cc.DataCheck");
return MultipleResults(cmd);
}
Run Code Online (Sandbox Code Playgroud)
辅助方法 MultipleResults 如下所示:
private SqlDataReader MultipleResults(SqlCommand cmd)
{
SqlConnection con = new SqlConnection(_connectionString);
cmd.Connection = con;
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
con.Close();
return dr;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下内容调用页面上的组件:
private void FillGridViews()
{
DBUtil DB = new DBUtil();
using (SqlDataReader dr = DB.CheckDataIntegrity())
{
if (dr.HasRows)
{
while (dr.Read())
{
GridView1.DataSource = dr;
GridView1.DataBind(); …Run Code Online (Sandbox Code Playgroud) 在AccountType.cs我有:
namespace MooDB.Domain
{
public enum AccountType {Real, Demo, Fictional};
}
Run Code Online (Sandbox Code Playgroud)
在Account.cs我有:
public class Account : Entity
{
public virtual int Id { get; set; }
public virtual Broker Broker { get; set; }
public virtual string Name { get; set; }
public virtual string NickName { get; set; }
public virtual string AccountNumber { get; set; }
public virtual Currency Currency { get; set; }
public virtual AccountType AccountType { get; set; }
public virtual bool IsActive { get; …Run Code Online (Sandbox Code Playgroud) 我在变量中有一个环境变量的名称,我想得到该值.我怎么做?我试过了:
PS C:\Users\Joe> $v="USERDOMAIN"
PS C:\Users\Joe> "$env:$v"
At line:1 char:2
+ "$env:$v"
+ ~~~~~
Variable reference is not valid. ':' was not followed by a valid variable name character. Consider using ${} to
delimit the name.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : InvalidVariableReferenceWithDrive
PS C:\Users\Joe> "$env:$($v)"
At line:1 char:2
+ "$env:$($v)"
+ ~~~~~
Variable reference is not valid. ':' was not followed by a valid variable name character. Consider using ${} to
delimit the name.
+ …Run Code Online (Sandbox Code Playgroud) 我的代码中有一些逻辑,我想知道是否有更好的重写方法.我有两个用户定义的服务器对象(serverA和serverB),如果它们都是enum ServerType Web或者我想继续Database.
目前的代码很笨拙:
if((serverA.ServerType == ServerType.Web || serverA.ServerType == ServerType.Database) && (serverB.ServerType == ServerType.Web || serverB.ServerType == ServerType.Database))
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
我正在以优雅简洁的方式撰写.
使用Visual Web Developer Express 2010和ASP.NET 4.0.
我有一个FormView,我想从数据库中设置一个默认值.我无法将其绑定到数据库中的值.我的FormView看起来像这样:
<asp:FormView
ID="frmOrderDetails"
DataSourceID="sdsFormOrderDetails"
runat="server"
DataKeyNames="orderId">
<EditItemTemplate>
<h3>Edit Order Details</h3>
<asp:Label ID="lblStrategy" Text="Strategy:" AssociatedControlID="ddlStrategies" runat="server" />
<asp:DropDownList SelectedValue='<%# Bind("strategyId") %>'
ID="ddlStrategies"
runat="server"
DataTextField="strategy"
DataValueField="strategyId"
DataSourceID="sdsStrategies"
/>
<asp:LinkButton
id="lnkUpdate"
Text="Update Order"
CommandName="Update"
Runat="server" />
|
<asp:LinkButton
id="lnkCancel"
Text="Cancel"
CommandName="Cancel"
Runat="server" />
</EditItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="sdsFormOrderDetails" runat="server"
ConnectionString="<%$ ConnectionStrings:LocalSQLServer %>"
ProviderName="<%$ ConnectionStrings:LocalSQLServer.ProviderName %>"
SelectCommand="usp_GetOrderDetails" SelectCommandType="StoredProcedure"
UpdateCommand="usp_UpdateOrder" UpdateCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter Name="orderId" ControlID="grdOrders" PropertyName="SelectedDataKey.Value" />
</SelectParameters>
<UpdateParameters>
<asp:ControlParameter Name="orderId" ControlID="grdOrders" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="sdsStrategies" runat="server"
ConnectionString="<%$ ConnectionStrings:LocalSQLServer …Run Code Online (Sandbox Code Playgroud) 我正在使用.NET 4.0与ASP.NET 4.0和C#(那将是C#4.0?).
我想在我的SQL Server数据库中插入一些数据,我有一个这样的方法来处理这个:
public int InsertTrade(
string symbol,
string tradeSetupId,
int tradeTypeId,
decimal lotsPerUnit,
string chartTimeFrame,
int tradeGrade,
int executionGrade,
int MFEPips,
int MAEPips,
decimal pctAccountRisked
)
{
SqlCommand cmd = new SqlCommand("usp_InsertTrade");
cmd.Parameters.AddWithValue("@symbol", symbol);
cmd.Parameters.AddWithValue("@pctAccountRisked", pctAccountRisked);
cmd.Parameters.AddWithValue("@tradeSetupId", tradeSetupId);
cmd.Parameters.AddWithValue("@lotsPerUnit", lotsPerUnit);
cmd.Parameters.AddWithValue("@tfCode", chartTimeFrame);
cmd.Parameters.AddWithValue("@MAEPips", MAEPips);
cmd.Parameters.AddWithValue("@MFEPips", MFEPips);
cmd.Parameters.AddWithValue("@tradeGrade", tradeGrade);
cmd.Parameters.AddWithValue("@executionGrade", executionGrade);
return (InsertData(cmd, "trade"));
}
Run Code Online (Sandbox Code Playgroud)
有几个非必填字段:tradeGrade,executionGrade,MFEPips,MAEPips.usp_InsertTrade存储过程将这些可选参数公开为NULLable.在C#中编写代码的最佳方法是什么?我正在学习编程,所以如果能提供最佳实践指导,那就太棒了.
以下是usp_InsertTrade的存储过程参数:
CREATE procedure [dbo].[usp_InsertTrade]
@symbol char(6),
@tradeSetupId varchar(10),
@tradeTypeId int,
@lotsPerUnit decimal(18,1),
@chartTimeFrame varchar(5),
@tradeGrade smallint = NULL,
@executionGrade smallint = NULL, …Run Code Online (Sandbox Code Playgroud) 我想创建一些函数名称数组,然后根据传递给我的脚本的参数调用它们.这可能吗?在下面的粗略示例中,如果我2作为参数传入脚本,我希望按顺序$twoFuncs调用函数列表.
param ($whichFuncs)
Function a{ Write-Host "Executing function a" }
Function b{ Write-Host "Executing function b" }
Function c {Write-Host "Executing function c" }
$twoFuncs = @("a","b")
$threeFuncs = @("c","b","a")
if($whichFuncs -eq 2)
{
# execute functions a + b
}
Run Code Online (Sandbox Code Playgroud) 我有一张开始时间和结束时间的表。我需要以分钟为单位生成这两个日期之间的间隔表。以下是一些示例数据:
declare @intervalMinutes int = 10
declare @myDates table (
myId int primary key identity,
startTime datetime,
endTime datetime
)
insert @myDates (startTime, EndTime) values ('2016-07-10 08:00','2016-07-10 09:00')
insert @myDates (startTime, EndTime) values ('2016-07-12 10:00','2016-07-12 12:00')
insert @myDates (startTime, EndTime) values ('2016-07-14 12:30','2016-07-14 14:30')
Run Code Online (Sandbox Code Playgroud)
我想看到的是每个myId时间间隔的一组日期@intervalMinutes。
所以,如果我们@intervalMinutes设置为10,那么我看到第一行之间的6个日期的列表2016-07-10 08:00,并2016-07-10 09:00在10个分钟为增量。
我的网站上有一个输入框,我想验证它是否包含 4 到 30 个字母数字字符或 . _ -(点、下划线、连字符)。
例如,这些是有效的:
无效:
在我的 html 中我有这一行:
<input id="handletext" type="text" spellcheck="false" pattern="^[\w-\.]{4,30}$" maxlength="30" />
Run Code Online (Sandbox Code Playgroud)
当我在最新的 Chrome 中加载页面时,调试器中出现错误:
模式属性值 ^[\w-.]{4,30}$ 不是有效的正则表达式:未捕获语法错误:无效的正则表达式:/^[\w-.]{4,30}$/:无效的字符类。
有什么想法我的模式有什么问题吗?
我有一些JSON,我想反序列化为Objects.
我试图这样做,但我只得到一些反序列化的JSON,vin和vout JSON是0或null.我究竟做错了什么?
Transaction t = JsonConvert.DeserializeObject<RPCResponse<Transaction>>(json).result;
Run Code Online (Sandbox Code Playgroud)
JSON:
{
"result": {
"hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000",
"txid": "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",
"hash": "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",
"size": 134,
"version": 1,
"locktime": 0,
"vin": [
{
"coinbase": "04ffff001d0104",
"sequence": 4294967295
}
],
"vout": [
{
"value": 50.00000000,
"n": 0,
"scriptPubKey": {
"asm": "0496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858ee OP_CHECKSIG",
"hex": "410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac",
"reqSigs": 1,
"type": "pubkey",
"addresses": [
"12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX"
]
}
}
],
"blockhash": "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048",
"confirmations": 563356,
"time": 1231469665,
"blocktime": 1231469665
},
"error": null,
"id": "getrawtransaction"
}
Run Code Online (Sandbox Code Playgroud)
调试器中的输出如下所示:
我的类看起来像这样:
public class RPCResponse<T>
{
public T result …Run Code Online (Sandbox Code Playgroud) c# ×5
asp.net ×2
powershell ×2
data-binding ×1
enums ×1
formview ×1
html ×1
json ×1
json.net ×1
lambda ×1
nhibernate ×1
regex ×1
sql-server ×1
t-sql ×1