我有下面的代码,其中我在tblSerials表中搜索的每个序列号并从那里删除它,但问题是,记录可能存在也可能不存在,所以我需要知道记录是否实际被删除,所以我可以使用qty = qty - 1更新另一个具有连续数量的数量的表(如果删除).
SqlConnection conn = new SqlConnection(connString);
for (int i = 0; i <= aSNs.Count()-1; i++)
{
string query = "delete from tblSerials where SerialNumber='" +aSNs[i]+ "'";
SqlCommand cmd = new SqlCommand(query, conn);
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw (ex);
}
finally
{
cmd.Dispose();
conn.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如果有任何方法可以在ExecuteNonQuery()发生后知道某个记录是否已从表中删除.
我试图理解为什么在尝试调试我的网站应用程序时(注意:没有Web应用程序,如果它很重要),我得到"断点当前不会被命中.此文档没有加载符号"消息.
到目前为止,我发现pdb(项目调试数据库)文件和源代码一样重要,它应该出现在bin文件夹中,但无论出于什么原因文件丢失,只有一些dll放在那里,实际上有整个目录中没有pdb文件.
我的第一个问题是:无论正在开发什么类型的项目,都应该有一个pdb文件.正确?
第二个问题:如何重新创建该文件,或者为了再次调试项目需要执行哪些步骤?
我有ListView两列,在列表视图中输入新项目之前,我想防止输入重复值,所以我找到ListView.FindItemWithText了实现这一点。
但我意识到,如果我输入232323,然后输入2323,这是不同的但以与第一个条目相同的数字开头,该函数返回该项目作为匹配项。
我想知道是否有任何方法可以匹配整个文本(精确文本)以避免上述情况。
这是我的代码:
Dim ChkSIM As New ListViewItem
ChkSIM = lvItems.FindItemWithText("2323")
If Not ChkSIM Is Nothing Then
lblErrorSIM.Text = "Already in list"
End If
Run Code Online (Sandbox Code Playgroud) 我不确定这是否是正确的问题,如果没有,我很抱歉.
使用与以下相同的代码:
string[] digits = { "zero", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine" };
var shortDigits = digits.Where((digit, index) => digit.Length < index);
foreach (var sD in shortDigits)
{
Console.WriteLine(sD);
}
// Output:
// five
// six
// seven
// eight
// nine
Run Code Online (Sandbox Code Playgroud)
系统如何知道digit数字中的项目以及index数组中的位置?
我有一个excel文件,它带来了存储过程中的数据,它工作得很完美,现在我已经用另一个更改了旧存储过程的存储过程,但是我收到一个错误:"操作不是当对象关闭时允许",在循环中:Do While Not rsData.EOF
世界上发生了什么:
Set dbConnection = New ADODB.Connection
dbConnection.ConnectionString = connStr
dbConnection.ConnectionTimeout = 60
dbConnection.Open
Set Cmd = New ADODB.Command
Cmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
Cmd.ActiveConnection = dbConnection
Dim myrealenddate As Date
'Create 2 output parameters
Set pm1 = Cmd.CreateParameter("@DateIni", adDBDate, adParamInput, 15, CDate(Sheet1.TextBoxfechainiG))
Set pm2 = Cmd.CreateParameter("@DateEnd", adDBDate, adParamInput, 15, CDate(Sheet1.TextBoxfechaendG))
'Append the output parameters to command object
Cmd.Parameters.Append pm1
Cmd.Parameters.Append pm2
Cmd.CommandText = "spProductionReportByDate"
'Cmd.CommandText = "sp_Report_Recv_Metrics"
Set rsData = New ADODB.Recordset
Set rsData.Source = Cmd
rsData.Open
I …Run Code Online (Sandbox Code Playgroud) 我有这个代码从sql查询中检索一些数据并将其放在Excel工作表中:
I = 4
Do While Not rs.EOF
I = I + 1
Sheet1.Range("A" & I).Value = rs(0)
Sheet1.Range("B" & I).Value = rs(1)
Sheet1.Range("C" & I).Value = rs(2)
Sheet1.Range("D" & I).Value = rs(3)
Sheet1.Range("E" & I).Value = rs(4)
Sheet1.Range("F" & I).Value = rs(5)
Sheet1.Range("G" & I).Value = rs(6)
Sheet1.Range("H" & I).Value = rs(7)
Sheet1.Range("I" & I).Value = rs(8)
Sheet1.Range("J" & I).Value = rs(9)
Sheet1.Range("K" & I).Value = rs(10)
Sheet1.Range("L" & I).Value = rs(11)
Sheet1.Range("M" & I).Value = rs(12)
Sheet1.Range("N" & …Run Code Online (Sandbox Code Playgroud) 我已经阅读了很多关于使用结构作为数据类型的危险,我想知道这个是否存在任何问题,
List<Summarized> SummarizedList = new List<Summarized>();
Summarized SumInfo;
struct Summarized
{
public string sBrand;
public string sModel;
public string sCustomer;
public int sline;
public string sLeader;
public int sDesire;
public int sReal;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用类型SumInfo的通用项列表,它是结构数据类型.每当我需要更新列表中的项目时,我只需执行以下操作:
SumInfo = (Summarized)SummarizedList[CurrentPos];
SumInfo.sDesire = DesireProd;
SumInfo.sReal = RealProduced;
SummarizedList[CurrentPos] = SumInfo;
Run Code Online (Sandbox Code Playgroud)
其中CurrentPos是我想要更新的项目的位置.
到目前为止一切正常,所以未来可能有任何问题吗?这个结构是可变的吗?
谢谢.
我意识到ShowHeaderWhenEmpty仅适用于PostBacks.加载页面后有什么方法可以使它工作吗?
<asp:GridView ID="GridView1"... ShowHeaderWhenEmpty="true"... >
<EmptyDataTemplate>
<asp:Label ID="Label1" runat="server" Text="No records found"></asp:Label>
</EmptyDataTemplate>
Run Code Online (Sandbox Code Playgroud)
当我没有要显示的信息时,上面的消息只出现在PostBacks中,当页面加载时没有.
假设我有这个时间值: 09:00:00
我有一个列有Time列的表,我有三个记录.
我希望用这个时间更新这3条记录,但每次增加一秒钟的时间值(对于每条记录).
像这样的东西:
ColumnA ColumnB
1 09:00:00
2 09:00:01
3 09:00:02
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我的解决方案
经过一段时间研究我自己的解决方案,这就是我想出的
update tor1
set ColumnB = dateadd(s,tor2.inc, ColumnB)
from table1 tor1
inner join (select ColumnA, ROW_NUMBER() OVER (Order by ColumnA) as inc from table1) tor2 on tor1.ColumnA=tor2.ColumnA
Run Code Online (Sandbox Code Playgroud) 我有下面的代码:
query = "insert into tblB2B_OrderStatusTopStillInRB (LSRNbr, ShipName, Units, DroppedInRB, EPT, Status, OnTimeStatus, ShipVia, DroppedInRB_Order, RealEPT) ";
query += "values ('"
+ ListOrdStatusTopInRB[i].LSRNbr + "','"
+ ListOrdStatusTopInRB[i].ShipName + "',"
+ ListOrdStatusTopInRB[i].Units + ",'"
+ ListOrdStatusTopInRB[i].DroppedInRB + "','"
+ ListOrdStatusTopInRB[i].EPT + "','"
+ ListOrdStatusTopInRB[i].Status + "','"
+ ListOrdStatusTopInRB[i].OnTimeStatus + "','"
+ ListOrdStatusTopInRB[i].ShipVia + "','"
+ ListOrdStatusTopInRB[i].DroppedInRB_Order + "','"
+ ListOrdStatusTopInRB[i].RealEPT + "')";
cmd.CommandText = query;
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
我刚刚意识到,当ShipName一个带有单引号的值时,会在insert语句中导致错误,例如:int'l Transp.
有没有办法解决这个问题,而不从字符串中删除单引号?
我尝试使用以下但没有工作:
cmd.CommandText = @query
+ @ListOrdStatusTopInRB[i].ShipName + "',"
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我使用下面的代码填写一个ComboBox:
cbxLines.DisplayMember = "Value";
cbxLines.ValueMember = "Key";
cbxLines.DataSource = new BindingSource(GetProductionLines(), null);
private Dictionary<int, string> GetProductionLines()
Run Code Online (Sandbox Code Playgroud)
现在我想用DisplayMemberComboBox中的每一个填充ListView 以及其他信息:
lvSelectedSetup.Items.Clear();
for (int i = 0; i <= cbxLines.Items.Count - 1; i++)
{
ListViewItem item = new ListViewItem();
item.SubItems.Add(cbxLines.Items[i].ToString()); <-- How to Get DisplayMember
item.SubItems.Add(cbxFromDate.Text);
item.SubItems.Add(cbxToDate.Text);
lvSelectedSetup.Items.Add(item);
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何从ComboBox 获取ValueMember或DisplayMember从ComboBox获取.
我正在尝试执行以下操作,但卡住了:
item.SubItems.Add(cbxLines.Items[i].GetType().GetProperty(cbxLines.ValueMember).GetValue(cbxLines,null))
Run Code Online (Sandbox Code Playgroud)
任何建议?
这是我的班级声明:
List<Carton> Cartons = new List<Carton>();
public class Carton
{
public string CartonLabel;
public string PN;
public List<string> Serials;
}
Run Code Online (Sandbox Code Playgroud)
这是一个通用列表,我将在最后使用它将其分配给Carton.Serials
List<string> Serials = new List<string>();
Run Code Online (Sandbox Code Playgroud)
当我这样做时,为什么Carton.Serials会变空: Serials.Clear()
if (Serials.Count > 0)
{
Carton CartonItem = new Carton();
CartonItem.CartonLabel = CartonData;
CartonItem.PN = PNData;
CartonItem.Serials = Serials;
Cartons.Add(CartonItem);
Serials.Clear();
}
Run Code Online (Sandbox Code Playgroud) 我在c#winforms中有一个项目,有一个名为的文件:( PublicSettings.cs这个文件在一个名为:Class的文件夹中),我有一个变量.
现在,我想在同一个项目中的另一个文件中使用该变量.
PublicSettings.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LVSetup.Class
{
class PublicSettings
{
private string _ConnStr = "Connection";
public string ConnStr
{
get
{
return this._ConnStr;
}
set
{
this._ConnStr = value;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想ConnStr在文件中使用该变量:frmLogin.cs
frmLogin.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LVSetup.Class;
namespace LVSetup
{
public partial class frmLogin : Form
{
public frmLogin()
{
InitializeComponent();
} …Run Code Online (Sandbox Code Playgroud)