C# 使用switch case分配变量
我需要在我的存储过程中使用在switch case中分配的变量,但我总是得到意外的结果。请帮助..任何回复都将是很大的帮助。谢谢C# 使用switch case分配变量,c#,stored-procedures,switch-statement,C#,Stored Procedures,Switch Statement,我需要在我的存储过程中使用在switch case中分配的变量,但我总是得到意外的结果。请帮助..任何回复都将是很大的帮助。谢谢 private void CheckMessage() { string chk = null; ShortMessage l = new ShortMessage(); string strCommand = "AT+CMGL=\"ALL\""; objS
private void CheckMessage()
{
string chk = null;
ShortMessage l = new ShortMessage();
string strCommand = "AT+CMGL=\"ALL\"";
objShortMessageCollection = objclsSMS.ReadSMS(this.port, strCommand);
foreach (ShortMessage msg in objShortMessageCollection)
{
l.Message = msg.Message;
string[] splt = l.Message.Split('#');
for (int i = 0; i < splt.Length; i++)
{
string[] parts = splt[i].Split(':');
char prefix = Convert.ToChar(parts[0]);
string value = parts[1];
switch (prefix)
{
case 'T':
l.truck = value;
break;
case 'D':
l.driver = value;
break;
case 'R':
l.receiveby = value;
break;
case 'A':
l.arrivedate = value;
break;
case 'U':
l.unloaddate = value;
break;
case 'N':
l.deliverynote = value;
break;
case 'L':
l.deliverydate = value;
break;
case 'S':
l.deliverystatus = value;
break;
case 'M':
l.mac = value;
break;
case 'C':
l.msgcreatedate = value;
break;
}
}
chk = l.getINFO(l).Tables[0].Rows[0][0].ToString();
if (chk == "1")
{
this.AutomaticReply();
this.DeleteToSim();
}
else
{
this.DeleteToSim();
}
l = null;
}
}
#endregion
一种可能是你看到的角色不是大写字母,或者你可能会得到一个引导空格。看看这样做是否有帮助:
char prefix = parts[0].Trim().ToUpper()[0];
如果仍然存在问题,请编辑原始帖子并添加ShortMessage类的结构您的查询将给出输出1。。。。。总是
SELECT 1 FROM Truck trk, Driver drv, DeliveryNotes dnt
WHERE trk.Plate_Number = @truck
AND drv.DRIVER_ID = @driver
AND dnt.DNID = @deliverynote
AND dnt.Status = 'N'
应该是
SELECT Top 1 * FROM Truck trk, Driver drv, DeliveryNotes dnt
WHERE trk.Plate_Number = @truck
AND drv.DRIVER_ID = @driver
AND dnt.DNID = @deliverynote
AND dnt.Status = 'N'
请使用断点并通过检查传递给存储过程的值进行调试。 值可能有额外的空间,如“aa bb”使用
TrimEnd(“”)修剪结束值
函数,&请正确解析其数据类型(Int、Double、DateTime等)
)。您正在阅读并用于其他用途的短信。请检查调用是否为私有/公共,以便将其值传递给存储过程
char prefix = Convert.ToChar(parts[0]);
使用
继续尝试…什么是“意外结果”
char prefix = Convert.ToChar(parts[0]);
parts[0]=parts[0].ToUpper();
char prefix = Convert.ToChar(parts[0]);