任何人都可以告诉我为什么当我尝试声明并使用“public void”函数时它会给我错误:
Expected class, delegate, enum, interface, or struct
我在开始时宣布它并且设置正确,它不会在我的主体中调用。我研究了它,这似乎是做它的。
编辑:
public void receipt();
namespace ConsoleApp
{
class Progam
{
static ... Main()
{
...
}
}
}
public void receipt()
{
...
}
所以它需要在“课程计划”中吗?
答案 0 :(得分:7)
您必须声明包含在类或结构中的方法,因为方法不是根成员。
答案 1 :(得分:1)
将public void receipt()
放入一个类(在Program或新类中)并删除public void receipt();
。
答案 2 :(得分:0)
我假设你试图声明一个没有类(或结构)体的函数。请注意,在C#中,每个方法都必须在类中声明。
请注意,如果您不想创建一个能够调用该方法的对象,您可以将其声明为“静态”'如下:
public class MyClass
{
public static void MyMethod()
{
Console.WriteLine("Hello World from static method");
}
}
你可以轻松使用:
MyClass.MyMethod();
在你的情况下:
public void receipt(); // C#
中没有前向声明命名空间ConsoleApp { 课程Progam { 静...主() { ... } } }
public void receipt()//这需要在类中声明 { ... }
使用C#代码是:
namespace ConsoleApp
{
class Progam
{
static ... Main()
{
Program program = new Program();
program.receipt();
// or static method
Program.receipt_static();
}
public static void receipt_static()
{
...
}
}
public void receipt()
{ ... }
}
}
答案 3 :(得分:0)
从错误中看,您似乎缺少类声明。
你确定你有这样的东西:
public class Foo
{
public void Bar()
{
...
}
}
答案 4 :(得分:0)
private void btnBrowse_Click(object sender, EventArgs e)
{
try
{
// Create an instance of the open file dialog box.
OpenFileDialog fld = new OpenFileDialog();
// Set filter options and filter index.
fld.Filter = "CSV Files (.CSV) |*.csv*";
fld.FilterIndex = 1;
fld.Multiselect = false;
// Call the ShowDialog method to show the dialog box.
if (fld.ShowDialog() == DialogResult.OK)
{
txtBrowse.Text = fld.FileName;
}
fld = null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(), "CSV Browse", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btnReadCSV_Click(object sender, EventArgs e)
{
try
{
DataTable dt = GetDataTableFromCsv(txtBrowse.Text, chkHasHeader.Checked);
grvData.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(), "CSV Read", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
static DataTable GetDataTableFromCsv(string path, bool isFirstRowHeader)
{
string header = isFirstRowHeader ? "Yes" : "No";
string pathOnly = Path.GetDirectoryName(path);
string fileName = Path.GetFileName(path);
string sql = @"SELECT * FROM [" + fileName + "]";
using (OleDbConnection connection = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathOnly +
";Extended Properties=\"Text;HDR=" + header + "\""))
using (OleDbCommand command = new OleDbCommand(sql, connection))
using (OleDbDataAdapter adapter = new OleDbDataAdapter(command))
{
DataTable dataTable = new DataTable();
dataTable.Locale = CultureInfo.CurrentCulture;
adapter.Fill(dataTable);
return dataTable;
}
}
private void btnImport_Click(object sender, EventArgs e)
{
try
{
DataTable dt = grvData.DataSource as System.Data.DataTable; //Getting data from Datagrid
string strSQL = "create Table " + txtTabelName.Text + " (";
foreach (DataColumn dc in dt.Columns)
{
if (dc.DataType.ToString() == "System.String")
{
strSQL += dc.ColumnName + " varchar(255), ";
}
else if (dc.DataType.ToString() == "System.Double")
{
strSQL += dc.ColumnName + " Numeric(10,3), ";
}
else if (dc.DataType.ToString() == "System.Int32")
{
strSQL += dc.ColumnName + " int, ";
}
}
strSQL += ")";
string strStatus = Executesql(strSQL);
if (strStatus == "Table Created")
{
int iCntRecords = 0;
foreach (DataRow dr in dt.Rows)
{
strSQL = "insert into " + txtTabelName.Text + " values ("; //Inserting value to Table
foreach (DataColumn dc2 in dt.Columns)
{
if (dc2.DataType.ToString() == "System.String")
{
strSQL += "'" + dr[dc2.Ordinal].ToString().Replace("'", "") + "',";
}
else
{
strSQL += dr[dc2.Ordinal] + ",";
}
}
strSQL = strSQL.Substring(0, strSQL.Length - 1) + ")";
Executesql(strSQL);
iCntRecords += 1; //add n counter on each successfull enter
}
MessageBox.Show("Completed! " + Environment.NewLine + Environment.NewLine + iCntRecords.ToString() + " records added!", "Done!");
}
else
{
MessageBox.Show(strStatus);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private string Executesql(string strSQL)
{
try
{
SqlConnection con = new SqlConnection(Properties.Settings.Default.connectionstring); //Connection to SQL Database
con.Open();
SqlCommand cmd = new SqlCommand(strSQL, con);
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception ex)
{
return ex.Message.ToString();
}
return "Table Created";
}
}