[英]asp.net error: Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?)
[英]Error 26 Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?)
我收到以下錯誤錯誤26無法將類型'object'隱式轉換為'string'。 此行上存在顯式轉換(是否缺少強制轉換?) string str = rd [0] .ToString(); 當嘗試獲取字符串中的文件路徑時,誰能解決我的問題
提前致謝
try
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()))
{
SqlCommand cmd = new SqlCommand();
String query = "select [PDFFilePath] from [dbo].[AdmPDFManage] Where [PdfId] = (SELECT MAX([PdfId]) FROM [dbo].[AdmPDFManage]) ";
cmd.Connection = con;
cmd.CommandText = query;
con.Open();
SqlDataReader rd = new SqlDataReader();
while (rd.Read())
{
string str = rd[0].ToString();
}
}
}
catch (Exception ex)
{
throw;
}
我也嘗試這個但得到同樣的錯誤
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()))
{
SqlCommand cmd = new SqlCommand();
String query = "select [PDFFilePath] from [dbo].[AdmPDFManage] Where [PdfId] = (SELECT MAX([PdfId]) FROM [dbo].[AdmPDFManage]) ";
cmd.Connection = con;
cmd.CommandText = query;
con.Open();
String PDFfilePath = (String)cmd.ExecuteScalar();
}
我無法重現該問題; 它應該工作正常。 但是,存在兩個問題:
SqlDataReader
.ConnectionString
以下可以正常編譯:
using (var con = new SqlConnection(
ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
using (var cmd = con.CreateCommand())
{
const string query = "select [PDFFilePath] from [dbo].[AdmPDFManage] Where [PdfId] = (SELECT MAX([PdfId]) FROM [dbo].[AdmPDFManage]) ";
cmd.CommandText = query;
con.Open();
using(var rd = cmd.ExecuteReader())
{
while (rd.Read())
{
string str = rd[0].ToString();
// .. do something
}
}
}
請注意,如果僅期望1行,則ExecuteScalar
會更簡單:
cmd.CommandText = query;
con.Open();
string str = (string) cmd.ExecuteScalar();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.