3

私は初心者で、.NET アプリケーションをコンパイルしようとしていますが、再コンパイルで多くのエラーが発生しています。特に次のエラーが発生します。

ステートメントとして使用できるのは、割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクトの式のみです。

これが配置されている116行目で、{ SqlDataReader CS;1;0000; }あなたは何を提案しますか?

namespace ProBall
{
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.IO;
    using System.Net;
    using System.Runtime.InteropServices;

    public class DataManager
    {
        public static List<string> barcodes = new List<string>();
        private string connStr;
        private string queryStr;
        public static bool queueMessage;
        public static bool serverStatus = false;

        public DataManager()
        {
        }

        public DataManager(string connStr, string queryStr)
        {
            this.connStr = connStr;
            this.queryStr = queryStr;
        }

        public static IPAddress FindIPAddress(bool localPreference)
        {
            return FindIPAddress(Dns.GetHostEntry(Dns.GetHostName()), localPreference);
        }

        public static IPAddress FindIPAddress(IPHostEntry host, bool localPreference)
        {
            if (host == null)
            {
                throw new ArgumentNullException("host");
            }
            if (host.AddressList.Length != 1)
            {
                foreach (IPAddress address in host.AddressList)
                {
                    bool local = IsLocal(address);
                    if (local && localPreference)
                    {
                        return address;
                    }
                    if (!(local || localPreference))
                    {
                        return address;
                    }
                }
            }
            return host.AddressList[0];
        }

        public string FormatDates(string date)
        {
            string tmpDate = date;
            try
            {
                string[] nDate = null;
                string day = string.Empty;
                string month = string.Empty;
                string year = string.Empty;
                if (tmpDate.Contains("/"))
                {
                    nDate = date.Split(new char[] { '/' });
                    day = nDate[0];
                    month = nDate[1];
                    year = nDate[2].Split(new char[] { ' ' })[0];
                    return (month + "/" + day + "/" + year);
                }
                if (tmpDate.Contains("-"))
                {
                    tmpDate = date.Split(new char[] { ' ' })[0];
                }
            }
            catch (Exception er)
            {
                this.LogError(er.Message, "GENERIC");
            }
            return tmpDate;
        }

        public string GetUserName(string tableName = "employees")
        {
            return this.ReadValue(string.Concat(new object[] { "select id from ", tableName, " where CurrentlyLoggedIn = 1 and LastLoginStation = '", ReturnHostName(), "' and LastLoginStationIP = '", FindIPAddress(true), "'" }), ConfigurationSettings.AppSettings["kcam"]);
        }

        public static bool IsLocal(IPAddress address)
        {
            if (address == null)
            {
                throw new ArgumentNullException("address");
            }
            byte[] addr = address.GetAddressBytes();
            return (((addr[0] == 10) || ((addr[0] == 0xc0) && (addr[1] == 0xa8))) || (((addr[0] == 0xac) && (addr[1] >= 0x10)) && (addr[1] <= 0x1f)));
        }

        public void LogError(string message, string logType = "GENERIC")
        {
            StreamWriter ftmp = new StreamWriter(@"c:\coopnet\server\debug.txt", true);
            ftmp.WriteLine(message);
            ftmp.Close();
        }

        public bool LogOffUser(string tableName = "employees")
        {
            return this.SaveEntityData(string.Concat(new object[] { "update ", tableName, " set CurrentlyLoggedIn = 0  where LastLoginStation = '", ReturnHostName(), "' and LastLoginStationIP = '", FindIPAddress(true), "'" }), ConfigurationSettings.AppSettings["kcam"]);
        }

        public SqlDataReader ReadData()
        {
            SqlDataReader CS;1;0000;
            using (SqlConnection conn = new SqlConnection(this.connStr))
            {
                using (SqlCommand cmd = new SqlCommand(this.queryStr, conn))
                {
                    conn.Open();
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        CS;1;0000 = reader;
                    }
                }
            }
            ; return CS; 1; 0000;
        }

        public bool ReadData(string query)
        {
            bool status = false;
            this.queryStr = query;
            using (SqlConnection conn = new SqlConnection(this.connStr))
            {
                using (SqlCommand cmd = new SqlCommand(this.queryStr, conn))
                {
                    conn.Open();
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.HasRows)
                        {
                            status = true;
                        }
                    }
                    return status;
                }
            }
        }

        public bool ReadData(string query, string connection)
        {
            bool status = false;
            using (SqlConnection conn = new SqlConnection(connection))
            {
                using (SqlCommand cmd = new SqlCommand(query, conn))
                {
                    conn.Open();
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.HasRows)
                        {
                            status = true;
                        }
                    }
                    return status;
                }
            }
        }

        public string ReadValue(string query, string connectionStr)
        {
            string value = string.Empty;
            this.queryStr = query;
            try
            {
                using (SqlConnection conn = new SqlConnection(connectionStr))
                {
                    using (SqlCommand cmd = new SqlCommand(this.queryStr, conn))
                    {
                        conn.Open();
                        using (SqlDataReader reader = cmd.ExecuteReader())
                        {
                            if (reader.HasRows)
                            {
                                reader.Read();
                                return reader[0].ToString();
                            }
                        }
                    }
                    return value;
                }
            }
            catch (Exception)
            {
                return value;
            }
            return value;
        }

        public static string ReturnHostName()
        {
            return Dns.GetHostName();
        }

        public bool SaveData()
        {
            try
            {
                bool status = false;
                using (SqlConnection conn = new SqlConnection(this.connStr))
                {
                    using (SqlCommand cmd = new SqlCommand(this.queryStr, conn))
                    {
                        conn.Open();
                        cmd.ExecuteReader();
                        status = true;
                    }
                }
                return status;
            }
            catch (Exception se)
            {
                this.LogError(se.Message, "GENERIC");
                return false;
            }
        }

        public bool SaveEntityData(string query, string connectionString)
        {
            try
            {
                Func<string, bool> performQuery = delegate (string querySql) {
                    this.connStr = connectionString;
                    this.queryStr = querySql;
                    return this.SaveData();
                };
                return performQuery(query);
            }
            catch (Exception e)
            {
                this.LogError("Error: " + e.Message, "GENERIC");
                return false;
            }
        }
    }
}
4

4 に答える 4

4

CS;1;0000;値を変数名として使用しようとしているように見えますが、これは Language Spec §2.4.2 Identifiers に従って無効です。変数名にセミコロンを使用することはできません。これは、ステートメントの終わりとして特別な意味を持つためです。その変数の名前をCS10000orCS_1_0000に変更すると、問題が解決するはずです。

于 2012-10-19T17:48:07.540 に答える
2

ご想像のとおり、行は次のとおりです。

SqlDataReader CS; 1; 0000;
CS;1;0000 = reader;
; return CS; 1; 0000;

無効です。コードをコンパイルするには、これを修正する必要があります。

;上記のコードの をアンダースコアなどに置き換えてみてください。

SqlDataReader CS_1_0000;
CS_1_0000 = reader;
return CS_1_0000;

.NET では、セミコロンは行の終わりを意味します。これは、次のコードが有効であることも意味します。

SqlDataReader CS; SqlDataReader cs2;

この 1 行で 2 つの変数が作成されます。CScs2

于 2012-10-19T17:48:00.730 に答える
2

あなたのpublic SqlDataReader ReadData()方法を見てください。セミコロンに問題があります。

SqlDataReader CS;1;0000;は正当な構文ではありません。変数に CS;1;10000; という名前を付けることはできません。それを CS1000 と呼び、メソッドを繰り返します。

于 2012-10-19T17:47:32.227 に答える
0

「CS;1;0000;」の代わりに変数名を使用する必要があります。(たとえば、tempReader)

于 2012-10-19T17:48:56.783 に答える