C# 获取“此行已属于另一个表&输入数组长于此表中的列数。”
如果使用finalTable.Rows.Addrow.ItemArray,则会显示此错误输入数组长于此表中的列数 如果我使用finalTable.Rows.Addrow,它会告诉我这一行已经属于另一个表C# 获取“此行已属于另一个表&输入数组长于此表中的列数。”,c#,asp.net,repeater,C#,Asp.net,Repeater,如果使用finalTable.Rows.Addrow.ItemArray,则会显示此错误输入数组长于此表中的列数 如果我使用finalTable.Rows.Addrow,它会告诉我这一行已经属于另一个表 不知道如何解决,有什么解决方案吗?下面是一个方法,允许您通过TSQL select*从表1中选择数据库中的数据。。。然后作为datatable返回并继续处理,例如绑定表 这是怎么回事 1已生成连接字符串,如果您正在开发web应用程序,请转到下面的web.config文件add,根据SQL环境设置
不知道如何解决,有什么解决方案吗?下面是一个方法,允许您通过TSQL select*从表1中选择数据库中的数据。。。然后作为datatable返回并继续处理,例如绑定表 这是怎么回事 1已生成连接字符串,如果您正在开发web应用程序,请转到下面的web.config文件add,根据SQL环境设置更改参数
<configuration>
<connectionStrings>
<add name="PSDatabaseConnectionString" connectionString="Data Source=YourSQLserverName\SQLEXPRESS;Initial Catalog=YourDatabaseName;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
3最后,您可以将数据表绑定到其他对象datagridview、datatable。我不知道代码中的Repeater1是什么对象类型,但如果它可以接受datatable,那么它将使用返回的datatable正确绑定
con.Open();
cmd.Connection = con;
cmd.CommandText = "SELECT CustomerName FROM Customers";
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds);
DataTable finalTable = new DataTable();
//finalTable.TableName = "Customers";
if (ds.Tables.Count > 0)
{
int i = 1;
DataTable firstTable = ds.Tables[0];
//firstTable.TableName = "Customers";
foreach (DataRow row in firstTable.Rows)
{
if (i == 5)
{
firstTable.NewRow();
i = 0;
}
finalTable.Rows.Add(row);
i++;
}
}
Repeater1.DataSource = finalTable;
Repeater1.DataBind();
con.Close();
}
<configuration>
<connectionStrings>
<add name="PSDatabaseConnectionString" connectionString="Data Source=YourSQLserverName\SQLEXPRESS;Initial Catalog=YourDatabaseName;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
public static DataTable RunSQL_DML_FillDataGrid(string TSQL)
{
string connectionString = ConfigurationManager.ConnectionStrings["PSDatabaseConnectionString"].ConnectionString;
SqlDataAdapter dataAdapter;
SqlConnection conn = new SqlConnection(connectionString);
try
{
// Run TSQL on SQL server
dataAdapter = new SqlDataAdapter(TSQL, connectionString);
// MS Term ' Create a command builder to generate SQL update, insert, and
// delete commands based on selectCommand. These are used to
// update the database.
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
// Populate a new data table and return the table.
// MS Term ' Populate a new data table and bind it to the BindingSource.
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
return table;
}
catch
{
return null;
}
}