把excel导入dgv之后,希望被导入的值可以转换(dgv中)
我现在碰到的问题是
如果 (导入值列为整型)
{
这里我无法输入非整型的
}目的:为了增加让输出值的时候,不用加引号
dgv中
123 被导出的时候不加引号
abc 被导出的时候加引号
12-12-2007 被导出的时候 加引号----------------------------
以上被导出的值,保存在txt中,以方便以后导入sql server 2000--------------------------------------------------
或是在列的开头有选择类型的也可以,我本来想在原来的值中,加入引,但是没有成功(类型问题)我试着在excel中,加入引号,发现,数字列不能导入,
或是在绑定dgv前,格式化这些值,都变成string?
我现在碰到的问题是
如果 (导入值列为整型)
{
这里我无法输入非整型的
}目的:为了增加让输出值的时候,不用加引号
dgv中
123 被导出的时候不加引号
abc 被导出的时候加引号
12-12-2007 被导出的时候 加引号----------------------------
以上被导出的值,保存在txt中,以方便以后导入sql server 2000--------------------------------------------------
或是在列的开头有选择类型的也可以,我本来想在原来的值中,加入引,但是没有成功(类型问题)我试着在excel中,加入引号,发现,数字列不能导入,
或是在绑定dgv前,格式化这些值,都变成string?
解决方案 »
- C# 调用一按钮的CLICK问题
- 逻辑判断问题
- 肯求 树的一种特殊遍历算法如何写?在线等。谢谢。
- 怎么得到被隐藏的网页源码?
- 如何把下面的这段xml写成xmlDoducment对象
- 如何将SQL2000的数据库文件.mdf转换成可能在PDA手机上用的.sdf格式的文件
- visual studio 2008可以配合.net framework一起用啊?怎么设置生成的时候是用哪一版的.net framework?
- 求助 C#问题
- 新人又来求助啦~C# 可以把Excel中的部分内容选中然后插入到Word指定位置吗?
- 关于不同解决方案的base64反序列化
- 如何得到IE地址栏里面的URL
- 求一个c#正则表达式
用try catch来处理.
{
try
{
foreach (DataGridViewCell cell in this.dataGridView1.SelectedCells)
{
if (cell.Value != null)
cell.Value = ""; }
}
catch { foreach (DataGridViewCell cell in this.dataGridView1.SelectedCells)
{
if (cell.Value != null)
cell.Value = 0; }
}
}
这个是异常
foreach (DataGridViewCell cell in this.dataGridView1.SelectedCells)
{
if (cell.Value != null)
{
try
{
this.Text = ((double)cell.Value).ToString();//
}
catch
{
this.Text = "abc";//变成你想要的.
}
} }
if (j + 1 < dataGridView1.ColumnCount)
{
myfile += dataGridView1[index[j], i].Value == null ? "null\t," : "" + dataGridView1[index[j], i].ValueType.Name + dataGridView1[index[j], i].Value.ToString() + ",";
}
else
{ myfile += dataGridView1[index[j], i].Value == null ? "null\t" : "" +dataGridView1[index[j], i].ValueType.Name+ dataGridView1[index[j], i].Value.ToString() + "";
}
你用
if ((this.textBox1.Text != "EXCEL文件") && (this.comboBox1.Text != "工作蒲"))
{
string strSource = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + this.textBox1.Text + "; Extended Properties =Excel 8.0";
OleDbConnection conn = new OleDbConnection(strSource);
string sqlstring = "SELECT * FROM [" + this.comboBox1.Text + "]";
OleDbDataAdapter adapter = new OleDbDataAdapter(sqlstring, conn);
DataSet da = new DataSet();
adapter.Fill(da);
//MessageBox.Show(da.Tables[0].Columns[0].DataType.ToString());
//this.dataGridView1.DataSource = da.Tables[0];
for (int i = 0; i < da.Tables[0].Rows.Count; i++)
{
for (int k = 0; k < da.Tables[0].Columns.Count; k++)
{
switch (da.Tables[0].Rows[i][k].GetType().Name)
{
case "String":
......
break;
case "Double":
......
break ;
default:
break;
}
}
}
conn.Close();
conn.Dispose();
adapter.Dispose();
da.Dispose();
}
如果是知道那么也可以先判断类型
string source = "D:\\book1.xls";//execel文件的完整路径
string sqlconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source + ";Extended Properties=Excel 8.0";
string sql = "SELECT * FROM [Sheet1$] ";
OleDbCommand oldcom = new OleDbCommand(sql, new OleDbConnection(sqlconn));
OleDbDataAdapter oleda = new OleDbDataAdapter(oldcom);
DataSet ds = new DataSet();
oleda.Fill(ds, "[Sheet1$]");
this.dataGridView1.DataSource = ds;
this.dataGridView1.DataMember = "[Sheet1$]";
string source = "D:\\book1.xls";//execel文件的完整路径
string sqlconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source + ";Extended Properties=Excel 8.0";
string sql = "SELECT * FROM [Sheet1$] ";
OleDbCommand oldcom = new OleDbCommand(sql, new OleDbConnection(sqlconn));
OleDbDataAdapter oleda = new OleDbDataAdapter(oldcom);
DataSet ds = new DataSet();
oleda.Fill(ds, "[Sheet1$]");
//克隆一个新的DataTable
DataTable dt = ds.Tables[0].Clone(); //设置DataTable的每一列的数据类型均为string
foreach (DataColumn c in dt.Columns)
{
c.DataType = typeof(string);
} //把值添加到新的DataTable
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow row = dt.NewRow();
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
row[j] = ds.Tables[0].Rows[i][j].ToString();
} dt.Rows.Add(row);
}//绑定新的DataTable
this.dataGridView1.DataSource = dt;
switch(dataGridView1.Rows[0].Cells[0].Value.GetType().ToString())
{
case "System.String":
case "System.Datetime":
{
//字符的处理方法
break;
}
default:
{
//数字的处理方法
break;
}
}
但是如果cell值的类型是double的话,那么他还是不会变的
字符进去会出错!