我有一个返回三个整数的 SQLDataReader。但是,有时两个整数将返回空值。
为了解决这个问题,我写了以下内容:
int shoppingCartHeadID = 0;
int billID = 0;
int delID = 0;
conn.Open();
reader = comm.ExecuteReader();
if (reader.Read())
{
shoppingCartHeadID = Convert.ToInt32(reader["shoppingCartHeadID"]);
if (!reader.IsDBNull(billID))
{
billID = Convert.ToInt32(reader["billID"]);
}
if (!reader.IsDBNull(delID))
{
delID = Convert.ToInt32(reader["delID"]);
}
}
reader.Close();
Run Code Online (Sandbox Code Playgroud)
不幸的是我仍然收到错误消息。有什么建议么?
PS我也尝试过这个但没有运气
if (reader["billID"] != null)
我有一个购物车,我正在开发作为Web用户控件.ucCart.ascx将出现在三个不同的页面上,我希望购物车的功能可以根据它出现的页面而改变.例如,当客户确认他们的订单时,我不希望删除购物车项目按钮或重新计算购物车按钮可见.
这可以在代码后面以编程方式完成吗?我宁愿不使用JavaScript.我天真地尝试使用,cartDelete.Visible = false;但根本不喜欢!
我继承了一个公司数据库,该数据库发出一个订单号作为GUID.当您想引用您的订单号时,不完全是用户友好的!所以我想要做的是添加一个新的int列,并为每个现有订单添加一个唯一的顺序订单号(已按datetime排序).
这是一个好主意,但我仍然坚持如何将其作为更新查询实际执行!任何帮助将不胜感激.
我刚刚发现了CROSS APPLY运算符,并给人以印象,它在处理派生列进行计算时非常有用。
因此,我尝试了以下方法:
SELECT leadYear,TotalLeadsCalled,SuccessLeadsCalled,SuccessLeadsPercent
FROM dbo.tblBinOutboundCallActivity
CROSS APPLY(VALUES (YEAR(leadactivitydate))) AS a1(leadyear)
CROSS APPLY(VALUES (COUNT(leadStatusID))) AS a2(TotalLeadsCalled)
CROSS APPLY(VALUES (COUNT(CASE WHEN leadStatusID = 2 THEN 1 ELSE NULL END))) AS a3(SuccessLeadsCalled)
CROSS APPLY(VALUES (SUM((SuccessLeadsCalled/TotalLeadsCalled)*100))) AS a4(SuccessLeadsPercent)
GROUP BY leadYear
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
APPLY右侧的聚合不能引用左侧的列。
我不太了解该错误,尤其是在第一个交叉应用实际上是孤立运行的情况下。我只是对概念完全错误了吗?
我有SqlDataReader一个页面的代码(实际上是一个Web用户控件).我想将此代码移动到用户控件调用的单独类中.但是如何将类中的数据绑定到页面转发器?
这是一个可接受的概念吗?
这是我的代码移到了一个类:
public class ShoppingCart
{
public ShoppingCart(int ShoppingCartHeadID)
{
SqlConnection conn;
SqlCommand comm;
SqlDataReader reader;
conn = new SqlConnection(iceConns.iconn);
comm = new SqlCommand("Ordering.sl_ShoppingCartContents", conn);
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add(new SqlParameter("@shoppingCartHeadID", SqlDbType.Int));
comm.Parameters["@shoppingCartHeadID"].Value = ShoppingCartHeadID;
try
{
conn.Open();
reader = comm.ExecuteReader();
Cart.DataSource = reader; //This ain't gonna work!
if (reader.HasRows)
{
Cart.DataBind(); //This ain't gonna work!
varCartStatus = true;
}
reader.Close();
}
catch
{
//Error trapping
}
finally
{
conn.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
我正在尝试与支付网关集成.他们需要将一组隐藏的输入框发布到他们的网关,如:
<input id="orderref" name="orderref" type="hidden" runat="server"/>
Run Code Online (Sandbox Code Playgroud)
我添加了runat ="server",因此我可以使用值动态填充框.
但是,当然在运行时输入框名称将更改为:
<input name="ctl00$ContentPlaceHolder1$orderref" type="hidden" id="ContentPlaceHolder1_orderref" value="9" />
Run Code Online (Sandbox Code Playgroud)
我在捕获22.如果我删除runat ="server"关于名称一切都很好,但我不能用值填充输入框!有没有办法强制该字段的名称保持不变?
我正在学习如何操纵Membership类.
我已使用aspnet_regsql.exe将Membership数据库添加到我的网站的SQL数据库中,到目前为止,我可以列出并添加用户没有问题.但是,我决定使用ASP.Net配置工具添加一些角色.角色已添加,但未显示在我的SQL数据库的aspnet_Roles表中.
我已经注意到我的VS2010 App_Data文件夹中的ASPNETDB.MDF用于相关网站,并且角色出现在那里.用户不在该数据库中,而是在我的web.config文件中配置的SQL DB中:
<configuration>
<connectionStrings>
<add name="myConnString" connectionString="Data Source=SQLDB;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<authentication mode="Forms" />
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
<machineKey validationKey="LOTSOFNUMBERS"
decryptionKey="MORENUMBERS" validation="SHA1" decryption="AES"/>
<membership defaultProvider="SqlProvider">
<providers>
<clear/>
<add name="SqlProvider"
connectionStringName="myConnString"
type="System.Web.Security.SqlMembershipProvider"
applicationName="myApp"
requiresUniqueEmail="true"
minRequiredPasswordLength="8"
minRequiredNonalphanumericCharacters="0"
requiresQuestionAndAnswer="false"
passwordFormat="Encrypted"
enablePasswordRetrieval="true"
/>
</providers>
</membership>
<roleManager enabled="true" />
<pages theme="myTheme">
</pages>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
如果可以使用我的数据库上的ASP.Net配置工具保存,修改和删除用户,那么我原本期望角色也这样做?我错过了什么步骤?
我可以在一个视图中这样做:
@Html.DisplayFor(m=> m.Customer.EmailAddress)
Run Code Online (Sandbox Code Playgroud)
但不能这样做:
@Html.Raw(m=> m.Customer.EmailAddress)
Run Code Online (Sandbox Code Playgroud)
得到
无法解析方法'Raw lambda expression'...
和
无法解析符号'客户'
这是绑定到ViewModel的强类型视图.
我需要将模型的电子邮件地址的未编码版本放入支付网关的隐藏字段中.我很惊讶这是一个问题(MVC新手).
我试过 @Html.Raw(model.EmailAddress)没用好运.我知道我做的事非常愚蠢.请把我从痛苦中解救出来!
我需要将DateTime转换为使用逗号格式化的DateTime.这是日历约会所必需的.启动(EWS托管API):
appointment.Start = new DateTime(2014, 1, 2, 9, 0, 0);
Run Code Online (Sandbox Code Playgroud)
但我想这样做:
DateTime myDateTime = DateTime.Now;
appointment.Start = new DateTime(myDateTime);
Run Code Online (Sandbox Code Playgroud)
这个错误
'System.DateTime.DateTime(long)'的最佳重载方法匹配具有一些无效参数.
显然缺少论点,但我不知道哪些!
c# ×6
asp.net ×5
t-sql ×2
asp.net-mvc ×1
class ×1
cross-apply ×1
data-binding ×1
datetime ×1
dbnull ×1
input ×1
razor ×1
repeater ×1
sql-update ×1