- 显示接下来的几行代码会有所帮助
-
我看不到您明确打开连接?是在GetConnection中吗?
-
是的,我打算编辑我??的问题来写。
-
您是否错误地剪切和粘贴了代码?我猜测您没有从catch(Exception e)块中的阅读器对象中读取?
-
@GrandMasterFlush reader = command.ExecuteReader();在catch异常块之前为null。
-
更改此时间(阅读器!= null
-
除非cm.executereader引发异常,否则您永远不会触及以下代码行:
1
| while (reader != null && reader.Read()) |
尝试将以下代码移到catch语句之外
1 2 3 4 5 6 7 8 9 10 11
| while (reader != null && reader .Read())
{
Image temp = new Image ((int)reader ["imageKey"],
(String)reader ["filename"],
(byte[])reader ["image"],
(reader ["labelKey"] == DBNull .Value ? null : (int?)reader ["labelKey"]),
(int)reader ["priority"]);
temp .SetDBName(caller .ConnectionString);
images .Add(temp );
} |
434511
Raym0nd,我想你是这个新人。
看看您提供的这个版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static List <Image > GetAll (BOI caller ) {
List <Image > images = new List <Image >();
using (SqlCeCommand cmd = new SqlCeCommand ("SELECT * FROM Images", Connection .GetConnection(caller .ConnectionString))) {
try {
cmd .Connection.Open();
using (SqlCeReader reader = cmd .ExecuteReader()) {
while (reader .Read()) {
object imageKey = reader ["imageKey"];
object filename = reader ["filename"];
object image = reader ["image"];
object labelKey = reader ["labelKey"];
object priority = reader ["priority"];
Image img = new Image ((interface)imageKey, (string)filename, (byte[])image, (int?)labelKey, (int)priority );
img .SetDBName(caller .ConnectionString);
images .Add(img );
}
}
} catch (SqlCeException err ) {
Console .WriteLine(err .Message);
throw err ;
} finally {
cmd .Connection.Close();
}
}
return images ;
} |
您希望添加一些功能以在可以为空的整数的情况下测试您的对象,但是大多数情况下是干净简洁的。
在Console.WriteLine()上放置一个断点,如果发生异常,将鼠标悬停在Message上。
434511
问题最终归因于当我切换到3.5.0.0时使用的是System.Data.SqlServerCe 3.5.1.0,它可以正常工作而没有任何错误。
然后将while循环放在catch语句之外。
但是我仍然对MS感到恼火,因为他们没有对此显示任何错误!
-
除非cm.executereader引发异常,否则您永远不会触及以下代码行:
1
| while (reader != null && reader.Read()) |
尝试将以下代码移到catch语句之外
1 2 3 4 5 6 7 8 9 10 11
| while (reader != null && reader .Read())
{
Image temp = new Image ((int)reader ["imageKey"],
(String)reader ["filename"],
(byte[])reader ["image"],
(reader ["labelKey"] == DBNull .Value ? null : (int?)reader ["labelKey"]),
(int)reader ["priority"]);
temp .SetDBName(caller .ConnectionString);
images .Add(temp );
} |
434511
Raym0nd,我想你是这个新人。
看看您提供的这个版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static List <Image > GetAll (BOI caller ) {
List <Image > images = new List <Image >();
using (SqlCeCommand cmd = new SqlCeCommand ("SELECT * FROM Images", Connection .GetConnection(caller .ConnectionString))) {
try {
cmd .Connection.Open();
using (SqlCeReader reader = cmd .ExecuteReader()) {
while (reader .Read()) {
object imageKey = reader ["imageKey"];
object filename = reader ["filename"];
object image = reader ["image"];
object labelKey = reader ["labelKey"];
object priority = reader ["priority"];
Image img = new Image ((interface)imageKey, (string)filename, (byte[])image, (int?)labelKey, (int)priority );
img .SetDBName(caller .ConnectionString);
images .Add(img );
}
}
} catch (SqlCeException err ) {
Console .WriteLine(err .Message);
throw err ;
} finally {
cmd .Connection.Close();
}
}
return images ;
} |
您希望添加一些功能以在可以为空的整数的情况下测试您的对象,但是大多数情况下是干净简洁的。
在Console.WriteLine()上放置一个断点,如果发生异常,将鼠标悬停在Message上。
434511
问题最终归因于当我切换到3.5.0.0时使用的是System.Data.SqlServerCe 3.5.1.0,它可以正常工作而没有任何错误。
然后将while循环放在catch语句之外。
但是我仍然对MS感到恼火,因为他们没有对此显示任何错误!
-
除非cm.executereader引发异常,否则您永远不会触及以下代码行:
1
| while (reader != null && reader.Read()) |
尝试将以下代码移到catch语句之外
1 2 3 4 5 6 7 8 9 10 11
| while (reader != null && reader .Read())
{
Image temp = new Image ((int)reader ["imageKey"],
(String)reader ["filename"],
(byte[])reader ["image"],
(reader ["labelKey"] == DBNull .Value ? null : (int?)reader ["labelKey"]),
(int)reader ["priority"]);
temp .SetDBName(caller .ConnectionString);
images .Add(temp );
} |
434511
Raym0nd,我想你是这个新人。
看看您提供的这个版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static List <Image > GetAll (BOI caller ) {
List <Image > images = new List <Image >();
using (SqlCeCommand cmd = new SqlCeCommand ("SELECT * FROM Images", Connection .GetConnection(caller .ConnectionString))) {
try {
cmd .Connection.Open();
using (SqlCeReader reader = cmd .ExecuteReader()) {
while (reader .Read()) {
object imageKey = reader ["imageKey"];
object filename = reader ["filename"];
object image = reader ["image"];
object labelKey = reader ["labelKey"];
object priority = reader ["priority"];
Image img = new Image ((interface)imageKey, (string)filename, (byte[])image, (int?)labelKey, (int)priority );
img .SetDBName(caller .ConnectionString);
images .Add(img );
}
}
} catch (SqlCeException err ) {
Console .WriteLine(err .Message);
throw err ;
} finally {
cmd .Connection.Close();
}
}
return images ;
} |
您希望添加一些功能以在可以为空的整数的情况下测试您的对象,但是大多数情况下是干净简洁的。
在Console.WriteLine()上放置一个断点,如果发生异常,将鼠标悬停在Message上。
434511
问题最终归因于当我切换到3.5.0.0时使用的是System.Data.SqlServerCe 3.5.1.0,它可以正常工作而没有任何错误。
然后将while循环放在catch语句之外。
但是我仍然对MS感到恼火,因为他们没有对此显示任何错误!
-
除非cm.executereader引发异常,否则您永远不会触及以下代码行:
1
| while (reader != null && reader.Read()) |
尝试将以下代码移到catch语句之外
1 2 3 4 5 6 7 8 9 10 11
| while (reader != null && reader .Read())
{
Image temp = new Image ((int)reader ["imageKey"],
(String)reader ["filename"],
(byte[])reader ["image"],
(reader ["labelKey"] == DBNull .Value ? null : (int?)reader ["labelKey"]),
(int)reader ["priority"]);
temp .SetDBName(caller .ConnectionString);
images .Add(temp );
} |
434511
Raym0nd,我想你是这个新人。
看看您提供的这个版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static List <Image > GetAll (BOI caller ) {
List <Image > images = new List <Image >();
using (SqlCeCommand cmd = new SqlCeCommand ("SELECT * FROM Images", Connection .GetConnection(caller .ConnectionString))) {
try {
cmd .Connection.Open();
using (SqlCeReader reader = cmd .ExecuteReader()) {
while (reader .Read()) {
object imageKey = reader ["imageKey"];
object filename = reader ["filename"];
object image = reader ["image"];
object labelKey = reader ["labelKey"];
object priority = reader ["priority"];
Image img = new Image ((interface)imageKey, (string)filename, (byte[])image, (int?)labelKey, (int)priority );
img .SetDBName(caller .ConnectionString);
images .Add(img );
}
}
} catch (SqlCeException err ) {
Console .WriteLine(err .Message);
throw err ;
} finally {
cmd .Connection.Close();
}
}
return images ;
} |
您希望添加一些功能以在可以为空的整数的情况下测试您的对象,但是大多数情况下是干净简洁的。
在Console.WriteLine()上放置一个断点,如果发生异常,将鼠标悬停在Message上。
434511
问题最终归因于当我切换到3.5.0.0时使用的是System.Data.SqlServerCe 3.5.1.0,它可以正常工作而没有任何错误。
然后将while循环放在catch语句之外。
但是我仍然对MS感到恼火,因为他们没有对此显示任何错误!
-
除非cm.executereader引发异常,否则您永远不会触及以下代码行:
1
| while (reader != null && reader.Read()) |
尝试将以下代码移到catch语句之外
1 2 3 4 5 6 7 8 9 10 11
| while (reader != null && reader .Read())
{
Image temp = new Image ((int)reader ["imageKey"],
(String)reader ["filename"],
(byte[])reader ["image"],
(reader ["labelKey"] == DBNull .Value ? null : (int?)reader ["labelKey"]),
(int)reader ["priority"]);
temp .SetDBName(caller .ConnectionString);
images .Add(temp );
} |
434511
Raym0nd,我想你是这个新人。
看看您提供的这个版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static List <Image > GetAll (BOI caller ) {
List <Image > images = new List <Image >();
using (SqlCeCommand cmd = new SqlCeCommand ("SELECT * FROM Images", Connection .GetConnection(caller .ConnectionString))) {
try {
cmd .Connection.Open();
using (SqlCeReader reader = cmd .ExecuteReader()) {
while (reader .Read()) {
object imageKey = reader ["imageKey"];
object filename = reader ["filename"];
object image = reader ["image"];
object labelKey = reader ["labelKey"];
object priority = reader ["priority"];
Image img = new Image ((interface)imageKey, (string)filename, (byte[])image, (int?)labelKey, (int)priority );
img .SetDBName(caller .ConnectionString);
images .Add(img );
}
}
} catch (SqlCeException err ) {
Console .WriteLine(err .Message);
throw err ;
} finally {
cmd .Connection.Close();
}
}
return images ;
} |
您希望添加一些功能以在可以为空的整数的情况下测试您的对象,但是大多数情况下是干净简洁的。
在Console.WriteLine()上放置一个断点,如果发生异常,将鼠标悬停在Message上。
434511
问题最终归因于当我切换到3.5.0.0时使用的是System.Data.SqlServerCe 3.5.1.0,它可以正常工作而没有任何错误。
然后将while循环放在catch语句之外。
但是我仍然对MS感到恼火,因为他们没有对此显示任何错误!
-
除非cm.executereader引发异常,否则您永远不会触及以下代码行:
1
| while (reader != null && reader.Read()) |
尝试将以下代码移到catch语句之外
1 2 3 4 5 6 7 8 9 10 11
| while (reader != null && reader .Read())
{
Image temp = new Image ((int)reader ["imageKey"],
(String)reader ["filename"],
(byte[])reader ["image"],
(reader ["labelKey"] == DBNull .Value ? null : (int?)reader ["labelKey"]),
(int)reader ["priority"]);
temp .SetDBName(caller .ConnectionString);
images .Add(temp );
} |
434511
Raym0nd,我想你是这个新人。
看看您提供的这个版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static List <Image > GetAll (BOI caller ) {
List <Image > images = new List <Image >();
using (SqlCeCommand cmd = new SqlCeCommand ("SELECT * FROM Images", Connection .GetConnection(caller .ConnectionString))) {
try {
cmd .Connection.Open();
using (SqlCeReader reader = cmd .ExecuteReader()) {
while (reader .Read()) {
object imageKey = reader ["imageKey"];
object filename = reader ["filename"];
object image = reader ["image"];
object labelKey = reader ["labelKey"];
object priority = reader ["priority"];
Image img = new Image ((interface)imageKey, (string)filename, (byte[])image, (int?)labelKey, (int)priority );
img .SetDBName(caller .ConnectionString);
images .Add(img );
}
}
} catch (SqlCeException err ) {
Console .WriteLine(err .Message);
throw err ;
} finally {
cmd .Connection.Close();
}
}
return images ;
} |
您希望添加一些功能以在可以为空的整数的情况下测试您的对象,但是大多数情况下是干净简洁的。
在Console.WriteLine()上放置一个断点,如果发生异常,将鼠标悬停在Message上。
434511
问题最终归因于当我切换到3.5.0.0时使用的是System.Data.SqlServerCe 3.5.1.0,它可以正常工作而没有任何错误。
然后将while循环放在catch语句之外。
但是我仍然对MS感到恼火,因为他们没有对此显示任何错误!
-
除非cm.executereader引发异常,否则您永远不会触及以下代码行:
1
| while (reader != null && reader.Read()) |
尝试将以下代码移到catch语句之外
1 2 3 4 5 6 7 8 9 10 11
| while (reader != null && reader .Read())
{
Image temp = new Image ((int)reader ["imageKey"],
(String)reader ["filename"],
(byte[])reader ["image"],
(reader ["labelKey"] == DBNull .Value ? null : (int?)reader ["labelKey"]),
(int)reader ["priority"]);
temp .SetDBName(caller .ConnectionString);
images .Add(temp );
} |
434511
Raym0nd,我想你是这个新人。
看看您提供的这个版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static List <Image > GetAll (BOI caller ) {
List <Image > images = new List <Image >();
using (SqlCeCommand cmd = new SqlCeCommand ("SELECT * FROM Images", Connection .GetConnection(caller .ConnectionString))) {
try {
cmd .Connection.Open();
using (SqlCeReader reader = cmd .ExecuteReader()) {
while (reader .Read()) {
object imageKey = reader ["imageKey"];
object filename = reader ["filename"];
object image = reader ["image"];
object labelKey = reader ["labelKey"];
object priority = reader ["priority"];
Image img = new Image ((interface)imageKey, (string)filename, (byte[])image, (int?)labelKey, (int)priority );
img .SetDBName(caller .ConnectionString);
images .Add(img );
}
}
} catch (SqlCeException err ) {
Console .WriteLine(err .Message);
throw err ;
} finally {
cmd .Connection.Close();
}
}
return images ;
} |
您希望添加一些功能以在可以为空的整数的情况下测试您的对象,但是大多数情况下是干净简洁的。
在Console.WriteLine()上放置一个断点,如果发生异常,将鼠标悬停在Message上。
434511
问题最终归因于当我切换到3.5.0.0时使用的是System.Data.SqlServerCe 3.5.1.0,它可以正常工作而没有任何错误。
然后将while循环放在catch语句之外。
但是我仍然对MS感到恼火,因为他们没有对此显示任何错误!
-
除非cm.executereader引发异常,否则您永远不会触及以下代码行:
1
| while (reader != null && reader.Read()) |
尝试将以下代码移到catch语句之外
1 2 3 4 5 6 7 8 9 10 11
| while (reader != null && reader .Read())
{
Image temp = new Image ((int)reader ["imageKey"],
(String)reader ["filename"],
(byte[])reader ["image"],
(reader ["labelKey"] == DBNull .Value ? null : (int?)reader ["labelKey"]),
(int)reader ["priority"]);
temp .SetDBName(caller .ConnectionString);
images .Add(temp );
} |
434511
Raym0nd,我想你是这个新人。
看看您提供的这个版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static List <Image > GetAll (BOI caller ) {
List <Image > images = new List <Image >();
using (SqlCeCommand cmd = new SqlCeCommand ("SELECT * FROM Images", Connection .GetConnection(caller .ConnectionString))) {
try {
cmd .Connection.Open();
using (SqlCeReader reader = cmd .ExecuteReader()) {
while (reader .Read()) {
object imageKey = reader ["imageKey"];
object filename = reader ["filename"];
object image = reader ["image"];
object labelKey = reader ["labelKey"];
object priority = reader ["priority"];
Image img = new Image ((interface)imageKey, (string)filename, (byte[])image, (int?)labelKey, (int)priority );
img .SetDBName(caller .ConnectionString);
images .Add(img );
}
}
} catch (SqlCeException err ) {
Console .WriteLine(err .Message);
throw err ;
} finally {
cmd .Connection.Close();
}
}
return images ;
} |
您希望添加一些功能以在可以为空的整数的情况下测试您的对象,但是大多数情况下是干净简洁的。
在Console.WriteLine()上放置一个断点,如果发生异常,将鼠标悬停在Message上。
434511
问题最终归因于当我切换到3.5.0.0时使用的是System.Data.SqlServerCe 3.5.1.0,它可以正常工作而没有任何错误。
然后将while循环放在catch语句之外。
但是我仍然对MS感到恼火,因为他们没有对此显示任何错误!
-
除非cm.executereader引发异常,否则您永远不会触及以下代码行:
1
| while (reader != null && reader.Read()) |
尝试将以下代码移到catch语句之外
1 2 3 4 5 6 7 8 9 10 11
| while (reader != null && reader .Read())
{
Image temp = new Image ((int)reader ["imageKey"],
(String)reader ["filename"],
(byte[])reader ["image"],
(reader ["labelKey"] == DBNull .Value ? null : (int?)reader ["labelKey"]),
(int)reader ["priority"]);
temp .SetDBName(caller .ConnectionString);
images .Add(temp );
} |
434511
Raym0nd,我想你是这个新人。
看看您提供的这个版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static List <Image > GetAll (BOI caller ) {
List <Image > images = new List <Image >();
using (SqlCeCommand cmd = new SqlCeCommand ("SELECT * FROM Images", Connection .GetConnection(caller .ConnectionString))) {
try {
cmd .Connection.Open();
using (SqlCeReader reader = cmd .ExecuteReader()) {
while (reader .Read()) {
object imageKey = reader ["imageKey"];
object filename = reader ["filename"];
object image = reader ["image"];
object labelKey = reader ["labelKey"];
object priority = reader ["priority"];
Image img = new Image ((interface)imageKey, (string)filename, (byte[])image, (int?)labelKey, (int)priority );
img .SetDBName(caller .ConnectionString);
images .Add(img );
}
}
} catch (SqlCeException err ) {
Console .WriteLine(err .Message);
throw err ;
} finally {
cmd .Connection.Close();
}
}
return images ;
} |
您希望添加一些功能以在可以为空的整数的情况下测试您的对象,但是大多数情况下是干净简洁的。
在Console.WriteLine()上放置一个断点,如果发生异常,将鼠标悬停在Message上。
434511
问题最终归因于当我切换到3.5.0.0时使用的是System.Data.SqlServerCe 3.5.1.0,它可以正常工作而没有任何错误。
然后将while循环放在catch语句之外。
但是我仍然对MS感到恼火,因为他们没有对此显示任何错误!