从索引 0 处开始,初始化字符串的格式不符合规范。 急!坐等答案
“/Web_UI”应用程序中的服务器错误。
--------------------------------------------------------------------------------
从索引 0 处开始,初始化字符串的格式不符合规范。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentException: 从索引 0 处开始,初始化字符串的格式不符合规范。
源错误:
行 122: {
行 123: string sqlstr = "select * from T_Theater";
行 124: sqlcon = new SqlConnection(strCon);
行 125: SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
行 126: DataSet myds = new DataSet();
----------------------------------------------------------------------------------------
下面是代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "MyOfficeConnectionString";
// private static string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath("/GuangDong/App_Data/#HS.mdb");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
protected void Unnamed1_Click(object sender, EventArgs e)
{
if (Fileupload1.HasFile)
{
//获取文件路径
string path = Fileupload1.PostedFile.FileName;
//获取文件名
string FileName = Fileupload1.FileName;
//根据文件结尾名判断文件格式
if (FileName.ToLower().Substring(FileName.Length - 3) != "xls" && FileName.ToLower().Substring(FileName.Length - 4) != "xlsx")
{
Response.Write("<script type='text/JavaScript'>alert('请选择Excel文件!')</script>");
return;
}
//获取Excel的数据datatable
DataTable dt = GetTable(path, FileName);
using (SqlConnection conn = new SqlConnection("server=.;database=Test;uid=sa;pwd=12345678;"))
{
conn.Open();
SqlTransaction sqlTransaction = conn.BeginTransaction();
// 将事务应用于Command
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.Connection = conn;
sqlCommand.Transaction = sqlTransaction;
try
{
foreach (DataRow row in dt.Rows)
{
string Theater = row["影院编号"].ToString();
string TheaterName = row["影院名称(艺恩)"].ToString();
string MonthBoxOffice = row["月票房"].ToString();
string Nationalproportionof = row["全国占比(百分比显示)"].ToString();
sqlCommand.CommandText = string.Format("insert into T_Theater([Theater],TheaterName,MonthBoxOffice,Nationalproportionof) values('{0}','{1}','{2}','{3}')", Theater, TheaterName, MonthBoxOffice, Nationalproportionof);//sql数据库
sqlCommand.ExecuteNonQuery();
}
//成功提交
sqlTransaction.Commit();
Response.Write("<script type='text/JavaScript'>alert('已成功导入文件!')</script>");
}
catch (Exception ex)
{
// 出错回滚
sqlTransaction.Rollback();
Response.Write("<script type='text/JavaScript'>alert('导入文件失败!')</script>");
}
finally
{
conn.Close();
}
}
}
else
{
Response.Write("<script type='text/JavaScript'>alert('请选择要导入的文件!')</script>");
}
}
//将Execl的数据读取到Datatable
protected DataTable GetTable(string path, string fileName)
{
string connString = "";
if (fileName.ToLower().IndexOf(".xlsx") < 0)
{
connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='{0}';Extended Properties='Excel 8.0;IMEX=1'", path);
}
else
{
connString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='{0}';Extended Properties='Excel 12.0;HDR=YES'", path);
}
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connString);
string sql = "SELECT * FROM [Sheet1$]";
DataTable dt;
try
{
conn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(sql, conn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "[Sheet1$]");
conn.Close();
dt = ds.Tables[0];
GridView1.DataSource = ds;
GridView1.DataBind();
}
catch (Exception err)
{
return null;
}
return dt;
}
//删除
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string sqlstr = "delete from T_Theater where ID='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcon = new SqlConnection(strCon);
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
bind();
}
//更新
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = "update T_Theater set Theater='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',TheaterName='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',MonthBoxOffice='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "',Nationalproportionof='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() + "' where ID='"
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = -1;
bind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bind();
}
//绑定
public void bind()
{
string sqlstr = "select * from T_Theater";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, "T_Theater");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "ID" };//主键
GridView1.DataBind();
sqlcon.Close();
}