public static string ABC(int uid)
{
StringBuilder sb = new StringBuilder();
sb.Append("[");
string sql = "select * from table WHERE UserID=@uid ORDER BY GEName,GoodsNum DESC;";
SqlParameter parm = new SqlParameter("@uid", SqlDbType.Int);
parm.Value = uid;
SqlDataReader rd = DB.SqlHelper.ExecuteReader(sql, parm);
if (rd.Read())
{
while (rd.Read())
{
//sb.AppendFormat("{'title':'{0},'", rd["GCName"]);
//sb.AppendFormat("'name':'{0},'", rd["GEName"]);//.ToString()
//sb.AppendFormat("'num':'{0}',", rd["GoodsNum"]);
//sb.AppendFormat("'level':'{0}'}", rd["GoodsLevel"]);
//sb.Append(",");
object[] oMsg = { rd["GCName"], rd["GEName"], rd["GoodsNum"], rd["GoodsLevel"] };
sb.AppendFormat("{'title':'{0}','name':'{1}','num':'{2}','level':'{3}'},", oMsg);//执行的时候这句报错???
}
sb = sb.Remove(sb.Length - 1, 1);
}
else
{
sb.Append("]");
}
rd.Close();
return sb.ToString();
}请问sb.AppendFormat("{'title':'{0}','name':'{1}','num':'{2}','level':'{3}'},", oMsg);这句哪里格式不正确
{
StringBuilder sb = new StringBuilder();
sb.Append("[");
string sql = "select * from table WHERE UserID=@uid ORDER BY GEName,GoodsNum DESC;";
SqlParameter parm = new SqlParameter("@uid", SqlDbType.Int);
parm.Value = uid;
SqlDataReader rd = DB.SqlHelper.ExecuteReader(sql, parm);
if (rd.Read())
{
while (rd.Read())
{
//sb.AppendFormat("{'title':'{0},'", rd["GCName"]);
//sb.AppendFormat("'name':'{0},'", rd["GEName"]);//.ToString()
//sb.AppendFormat("'num':'{0}',", rd["GoodsNum"]);
//sb.AppendFormat("'level':'{0}'}", rd["GoodsLevel"]);
//sb.Append(",");
object[] oMsg = { rd["GCName"], rd["GEName"], rd["GoodsNum"], rd["GoodsLevel"] };
sb.AppendFormat("{'title':'{0}','name':'{1}','num':'{2}','level':'{3}'},", oMsg);//执行的时候这句报错???
}
sb = sb.Remove(sb.Length - 1, 1);
}
else
{
sb.Append("]");
}
rd.Close();
return sb.ToString();
}请问sb.AppendFormat("{'title':'{0}','name':'{1}','num':'{2}','level':'{3}'},", oMsg);这句哪里格式不正确
应该要检查前面数组里面参数的值,
sb.AppendFormat("{'title':{0},'name':{1},'num':{2},'level':{3}},", oMsg);
如果打算用数组的方式来传参的话应该如下
sb.AppendFormat("{'title':'{0}','name':'{1}','num':'{2}','level':'{3}'},", oMsg[0],oMsg[1],oMsg[2],oMsg[3])
sb.AppendFormat("{{'title':'{0}','name':'{1}','num':'{2}','level':'{3}'}},", oMsg);
public class VedioGrap
{
private static int hHwnd;
//private const int port = 2000; private struct videohdr_tag
{
//private byte[] lpData;
//private int dwBufferLength;
//private int dwBytesUsed;
//private int dwTimeCaptured;
//private int dwUser;
//private int dwFlags;
//private int[] dwReserved;
} private delegate bool CallBack (int hwnd, int lParam); /// <summary>
/// 必需的设计器变量。
/// </summary>
[DllImport ("avicap32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int capCreateCaptureWindowA ([MarshalAs (UnmanagedType.VBByRefStr)] ref string lpszWindowName, int dwStyle, int x, int y, int nWidth, short nHeight, int hWndParent, int nID); [DllImport ("avicap32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern bool capGetDriverDescriptionA (short wDriver, [MarshalAs (UnmanagedType.VBByRefStr)] ref string lpszName, int cbName, [MarshalAs (UnmanagedType.VBByRefStr)] ref string lpszVer, int cbVer); [DllImport ("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern bool DestroyWindow (int hndw); [DllImport ("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int SendMessage (int hwnd, int wMsg, int wParam, [MarshalAs (UnmanagedType.AsAny)] object lParam); [DllImport ("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int SetWindowPos (int hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags); [DllImport ("vfw32.dll")]
private static extern string capVideoStreamCallback (int hwnd, videohdr_tag videohdr_tag); [DllImport ("vicap32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern bool capSetCallbackOnFrame (int hwnd, string s); /// <summary>
/// 开始载入视频
/// </summary>
public bool OpenCapture (Panel pnlVideo)
{
bool videostart = false;
int intWidth = pnlVideo.Width;
int intHeight = pnlVideo.Height;
int intDevice = 0;
string refDevice = intDevice.ToString (); //创建视频窗口并得到句柄
hHwnd = VedioGrap.capCreateCaptureWindowA (ref refDevice, 1342177280, 0, 0, 640, 480, pnlVideo.Handle.ToInt32 (), 0); if (SendMessage (hHwnd, 0x40a, intDevice, 0) > 0)
{
SendMessage (hHwnd, 0x435, -1, 0);
SendMessage (hHwnd, 0x434, 0x01, 0);
SendMessage (hHwnd, 0x432, -1, 0);
SetWindowPos (hHwnd, 1, 0, 0, intWidth, intHeight, 6); videostart = true;
}
else
{
VedioGrap.DestroyWindow (hHwnd); videostart = false;
MessageBox.Show ("加载视频失败,请检查是否有安装设备!", "拍照");
} return videostart;
} /// <summary>
/// 停止视频
/// </summary>
public void StopVideo ()
{
//停止视频注销视频句柄
SendMessage (hHwnd, 0x40b, 0, 0);
DestroyWindow (hHwnd);
} /// <summary>
/// 截图
/// </summary>
/// <returns></returns>
public Image GrapPhoto ()
{
Image photo = null; SendMessage (hHwnd, 0x41e, 0, 0); IDataObject obj1 = Clipboard.GetDataObject (); if (obj1.GetDataPresent (typeof (Bitmap)))
{
photo = (Image)obj1.GetData (typeof (Bitmap));
//截完图不能关闭视频,否则无法继续截图
//StopVideo();
} return photo;
}
/// <summary>
/// 保存图片到指定目录
/// </summary>
private void SavePhotos ()
{
#region
//try
//{
// frmVistInfo.SendMessage (this.hHwnd, 0x41e, 0, 0); // IDataObject obj1 = Clipboard.GetDataObject (); // if (obj1.GetDataPresent (typeof (Bitmap)))
// {
// //Image image1 = (Image)obj1.GetData(typeof(Bitmap)); // SaveFileDialog SaveFileDialog1 = new SaveFileDialog ();
// SaveFileDialog1.FileName = DateTime.Now.ToString ("yyyyMMddhhmmss");
// SaveFileDialog1.Filter = "Image Files(*.JPG;*.GIF)|*.JPG;*.GIF|All files (*.*)|*.*"; // if (SaveFileDialog1.ShowDialog () == DialogResult.OK)
// {
// //image1.Save(SaveFileDialog1.FileName, ImageFormat.Bmp);
// pbVistorImg.Image.Save (SaveFileDialog1.FileName, ImageFormat.Bmp);
// }
// }
//}
//catch
//{ }
#endregion
} }
public class VedioGrap
{
private static int hHwnd;
//private const int port = 2000; private struct videohdr_tag
{
//private byte[] lpData;
//private int dwBufferLength;
//private int dwBytesUsed;
//private int dwTimeCaptured;
//private int dwUser;
//private int dwFlags;
//private int[] dwReserved;
} private delegate bool CallBack (int hwnd, int lParam); /// <summary>
/// 必需的设计器变量。
/// </summary>
[DllImport ("avicap32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int capCreateCaptureWindowA ([MarshalAs (UnmanagedType.VBByRefStr)] ref string lpszWindowName, int dwStyle, int x, int y, int nWidth, short nHeight, int hWndParent, int nID); [DllImport ("avicap32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern bool capGetDriverDescriptionA (short wDriver, [MarshalAs (UnmanagedType.VBByRefStr)] ref string lpszName, int cbName, [MarshalAs (UnmanagedType.VBByRefStr)] ref string lpszVer, int cbVer); [DllImport ("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern bool DestroyWindow (int hndw); [DllImport ("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int SendMessage (int hwnd, int wMsg, int wParam, [MarshalAs (UnmanagedType.AsAny)] object lParam); [DllImport ("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int SetWindowPos (int hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags); [DllImport ("vfw32.dll")]
private static extern string capVideoStreamCallback (int hwnd, videohdr_tag videohdr_tag); [DllImport ("vicap32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern bool capSetCallbackOnFrame (int hwnd, string s); /// <summary>
/// 开始载入视频
/// </summary>
public bool OpenCapture (Panel pnlVideo)
{
bool videostart = false;
int intWidth = pnlVideo.Width;
int intHeight = pnlVideo.Height;
int intDevice = 0;
string refDevice = intDevice.ToString (); //创建视频窗口并得到句柄
hHwnd = VedioGrap.capCreateCaptureWindowA (ref refDevice, 1342177280, 0, 0, 640, 480, pnlVideo.Handle.ToInt32 (), 0); if (SendMessage (hHwnd, 0x40a, intDevice, 0) > 0)
{
SendMessage (hHwnd, 0x435, -1, 0);
SendMessage (hHwnd, 0x434, 0x01, 0);
SendMessage (hHwnd, 0x432, -1, 0);
SetWindowPos (hHwnd, 1, 0, 0, intWidth, intHeight, 6); videostart = true;
}
else
{
VedioGrap.DestroyWindow (hHwnd); videostart = false;
MessageBox.Show ("加载视频失败,请检查是否有安装设备!", "拍照");
} return videostart;
} /// <summary>
/// 停止视频
/// </summary>
public void StopVideo ()
{
//停止视频注销视频句柄
SendMessage (hHwnd, 0x40b, 0, 0);
DestroyWindow (hHwnd);
} /// <summary>
/// 截图
/// </summary>
/// <returns></returns>
public Image GrapPhoto ()
{
Image photo = null; SendMessage (hHwnd, 0x41e, 0, 0); IDataObject obj1 = Clipboard.GetDataObject (); if (obj1.GetDataPresent (typeof (Bitmap)))
{
photo = (Image)obj1.GetData (typeof (Bitmap));
//截完图不能关闭视频,否则无法继续截图
//StopVideo();
} return photo;
}
/// <summary>
/// 保存图片到指定目录
/// </summary>
private void SavePhotos ()
{
#region
//try
//{
// frmVistInfo.SendMessage (this.hHwnd, 0x41e, 0, 0); // IDataObject obj1 = Clipboard.GetDataObject (); // if (obj1.GetDataPresent (typeof (Bitmap)))
// {
// //Image image1 = (Image)obj1.GetData(typeof(Bitmap)); // SaveFileDialog SaveFileDialog1 = new SaveFileDialog ();
// SaveFileDialog1.FileName = DateTime.Now.ToString ("yyyyMMddhhmmss");
// SaveFileDialog1.Filter = "Image Files(*.JPG;*.GIF)|*.JPG;*.GIF|All files (*.*)|*.*"; // if (SaveFileDialog1.ShowDialog () == DialogResult.OK)
// {
// //image1.Save(SaveFileDialog1.FileName, ImageFormat.Bmp);
// pbVistorImg.Image.Save (SaveFileDialog1.FileName, ImageFormat.Bmp);
// }
// }
//}
//catch
//{ }
#endregion
} }